private void ExecuteSyncCommand() { Task.Run(() => { if (!SyncHelper.HasConnection()) { Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "No network. Unable to sync." }); System.Threading.Thread.Sleep(3000); Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); return; } Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = true, Message = "Syncing..." }); if (PBISyncHelper.IsRunning) { PBISyncHelper.WaitForCompletion(); } PBISyncHelper.RunSync(); PBISyncHelper.WaitForCompletion(); Messenger.Default.Send <BusyMessage>(new BusyMessage { IsBusy = false, Message = "" }); }); }
public async Task DoSync() { var newSyncTime = DateTime.UtcNow; try { if (!SyncHelper.HasConnection()) { return; } using (var uow = new UnitOfWork()) { var documentDbSetting = uow.SettingsRepository.FindSingle(x => x.Key == BridgeSettingKeys.DOCUMENT_DB_KEY); var endpointSetting = uow.SettingsRepository.FindSingle(x => x.Key == BridgeSettingKeys.DOCUMENTDB_ENDPOINT); DocumentDBContext.Initialize(endpointSetting.Value, documentDbSetting.Value); if (DocumentDBContext.Initialized) { try { var lastSyncTime = DateTime.Parse(uow.SettingsRepository.GetSettingWithDefault(BridgeSettingKeys.LAST_SYNC_TIME, "01/01/2019")); lastSyncTime = lastSyncTime.AddMinutes(-1); await ExecuteSteps(uow, lastSyncTime); uow.SettingsRepository.UpsertSetting(BridgeSettingKeys.LAST_SYNC_TIME, newSyncTime.ToString()); uow.SaveChanges(); } catch (Exception exc) { Logging.Logger.Log(exc); } } } } catch (Exception outerExc) { Logging.Logger.Log(outerExc); } }