Эта синхронизация представляет собой дюжину веб-служб, которые можно «сгруппировать» в 4 категории:
- "Права пользователя"
- "Формы >" данные, которые могут обновляться с двух сторон (пользователь/сервер)
- "Сервер" данные, которые обновляются только с сервера
Данные «Просмотры», которые локально копируют представления сервера.
Код: Выделить всё
response = await client.PostAsync(webServiceName, content);
Код: Выделить всё
public static async Task PushForm(List parameters)
{
var response = await JsonParser.GetJsonFromUrl(WebServiceName.PushForm.Value, parameters);
Forms forms = new Forms();
try
{
forms = JsonConvert.DeserializeObject(response);
return response;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
Код: Выделить всё
public async Task SynchronizeServerData()
{
bool result = false;
try
{
result = true;
List tables1 = await WebServices.GetListTable1(null);
if (tables1 != null)
{
ServiceLocator.Current.GetInstance().DeleteAll(true);
ServiceLocator.Current.GetInstance().AddAll(tables1);
}
List tables2 = await WebServices.GetListTable2(null);
if (tables2 != null)
{
ServiceLocator.Current.GetInstance().DeleteAll(true);
ServiceLocator.Current.GetInstance().AddAll(tables2);
}
List tables3 = await WebServices.GetListTable3(null);
if (tables3 != null)
{
ServiceLocator.Current.GetInstance().DeleteAll(true);
ServiceLocator.Current.GetInstance().AddAll(tables3);
}
...
}
catch (Exception e)
{
result = false;
}
return result;
}
Код: Выделить всё
public async void SynchronizeData(bool firstSync)
{
IsBusy = true;
var resUsers = await _synchronisation.SynchronizeUsersRights();
var resServer = await _synchronisation.SynchronizeServerData();
var resForm = await _synchronisation.SynchronizeForms();
var resViews = await _synchronisation.SynchronizeViews();
IsBusy = false;
}
=> Хотелось бы знать есть ли простой способ «распараллелить» вызовы для оптимизации производительности? Или можно для этого отделить восстановление данных от обновления SQLite?
Подробнее здесь: https://stackoverflow.com/questions/406 ... te-through
Мобильная версия