public void StartSync() { try { LoggerUtility.InitializeLogger(); int BranchID = 45; DateTime syncStartTime = DateTime.Now.AddMinutes(-15); //LoggerUtility.Logger.Info($"Warehouse sync started at {syncStartTime.ToLongTimeString()}"); //Console.Clear(); Console.WriteLine($"Warehouse sync started at {syncStartTime.ToLongTimeString()}"); WarehouseRepository warehouseRepository = new WarehouseRepository(); CloudRepository cloudRepository = new CloudRepository(); DataTable dtEntity = cloudRepository.GetEntityData(BranchID, "ToCloud"); foreach (DataRow entityRow in dtEntity.Rows) { string entityName = entityRow["ENTITYNAME"].ToString(); //LoggerUtility.Logger.Info($"{entityName} up sync started"); //Console.WriteLine($"{entityName} up sync started"); DataTable dtEntityWiseData = warehouseRepository.GetEntityWiseData(entityName, entityRow["SYNCDATE"]); //LoggerUtility.Logger.Info($"Found {dtEntityWiseData.Rows.Count} records to up sync in entity : {entityName} "); Console.WriteLine($"Found {dtEntityWiseData.Rows.Count} records to up sync in entity : {entityName} "); cloudRepository.SaveData(entityName, dtEntityWiseData); cloudRepository.UpdateEntitySyncStatus(entityRow["ENTITYSYNCSTATUSID"], syncStartTime); //LoggerUtility.Logger.Info($"{entityName} up sync completed"); //Console.WriteLine($"{entityName} up sync completed"); } // start down sync from cloud dtEntity = cloudRepository.GetEntityData(BranchID, "FromCloud"); foreach (DataRow entityRow in dtEntity.Rows) { string entityName = entityRow["ENTITYNAME"].ToString(); //LoggerUtility.Logger.Info($"{entityName} down sync started"); //Console.WriteLine($"{entityName} down sync started"); DataTable dtEntityWiseData = cloudRepository.GetEntityWiseData(entityName, entityRow["SYNCDATE"]); //LoggerUtility.Logger.Info($"Found {dtEntityWiseData.Rows.Count} records to down sync in entity : {entityName} "); Console.WriteLine($"Found {dtEntityWiseData.Rows.Count} records to down sync in entity : {entityName} "); warehouseRepository.SaveData(entityName, dtEntityWiseData); cloudRepository.UpdateEntitySyncStatus(entityRow["ENTITYSYNCSTATUSID"], syncStartTime); //LoggerUtility.Logger.Info($"{entityName} down sync completed"); //Console.WriteLine($"{entityName} down sync completed"); } //LoggerUtility.Logger.Info($"Warehouse sync completed"); Console.WriteLine($"Warehouse sync completed"); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.StackTrace); Console.ReadLine(); } Thread.Sleep(5 * 60 * 1000); StartSync(); }
public static void StartSync(BackgroundWorker backgroundWorker, bool forceFullSync = false) { try { LoggerUtility.InitializeLogger(); DateTime syncStartTime = DateTime.Now.AddMinutes(-15); //LoggerUtility.Logger.Info($"POS sync started at {syncStartTime.ToLongTimeString()}"); backgroundWorker?.ReportProgress(0, $"POS sync started at {syncStartTime.ToLongTimeString()}"); SyncRepository syncRepository = new SyncRepository(); CloudRepository cloudRepository = new CloudRepository(); DataTable dtEntity = cloudRepository.GetEntityData(branchinfo.BranchCounterID, "FromCloud"); foreach (DataRow entityRow in dtEntity.Rows) { string entityName = entityRow["ENTITYNAME"].ToString(); //LoggerUtility.Logger.Info($"{entityName} down sync started"); ReportText(backgroundWorker, $"{entityName} down sync started"); DataTable dtEntityWiseData = cloudRepository.GetEntityWiseData( entityName, forceFullSync ? "01-01-1900" : entityRow["SYNCDATE"] , branchinfo.BranchID); ReportText(backgroundWorker, $"Found {dtEntityWiseData.Rows.Count} records to down sync in entity : {entityName} "); syncRepository.SaveData(entityName, dtEntityWiseData); cloudRepository.UpdateEntitySyncStatus(entityRow["ENTITYSYNCSTATUSID"], syncStartTime); ReportText(backgroundWorker, $"{entityName} down sync completed"); } // start up sync dtEntity = cloudRepository.GetEntityData(branchinfo.BranchCounterID, "ToCloud"); foreach (DataRow entityRow in dtEntity.Rows) { string entityName = entityRow["ENTITYNAME"].ToString(); ReportText(backgroundWorker, $"{entityName} up sync started"); DataTable dtEntityWiseData = syncRepository.GetEntityWiseData(entityName, entityRow["SYNCDATE"]); ReportText(backgroundWorker, $"Found {dtEntityWiseData.Rows.Count} records to up sync in entity : {entityName} "); cloudRepository.SaveData(entityName, dtEntityWiseData); cloudRepository.UpdateEntitySyncStatus(entityRow["ENTITYSYNCSTATUSID"], syncStartTime); ReportText(backgroundWorker, $"{entityName} up sync completed"); } // clear old data ReportText(backgroundWorker, $"clearing one month old data"); syncRepository.ClearOldData(); //LoggerUtility.Logger.Info($"POS sync completed"); backgroundWorker?.ReportProgress(0, $"POS sync completed at {DateTime.Now.ToLongTimeString()}"); } catch (Exception ex) { XtraMessageBox.Show($"Error while running sync : {ex.Message} {Environment.NewLine} {ex.StackTrace}"); } }
public async void ObterDicas() { DeviceRepository deviceRepository = new DeviceRepository(); var dicas = deviceRepository.ObterDicas(); for (int index = 0; index < dicas.Count; index++) { var dica = dicas[index]; if (index + 1 > Dicas.Count || Dicas[index].Equals(dica)) { Image image = new Image(); IFolder rootFolder = FileSystem.Current.LocalStorage; IFile file = rootFolder.GetFileAsync(dica.NomeArquivo).Result; Stream s = file.OpenAsync(FileAccess.Read).Result; dica.ImagemBinding.Source = ImageSource.FromStream(() => s); Dicas.Insert(index, dica); } } CloudRepository cloudRepository = new CloudRepository(); var dicasCloud = await cloudRepository.ObterDicas(); if (dicasCloud != null && dicasCloud.Count > 0) { for (int index = 0; index < dicas.Count; index++) { var dicaCloud = dicas[index]; Image image = new Image(); IFolder rootFolder = FileSystem.Current.LocalStorage; IFile file = rootFolder.GetFileAsync(dicaCloud.NomeArquivo).Result; Stream s = file.OpenAsync(FileAccess.Read).Result; dicaCloud.ImagemBinding.Source = ImageSource.FromStream(() => s); for (int i = 0; i < Dicas.Count; i++) { if (Dicas[i].ID == dicaCloud.ID) { Dicas[i] = dicaCloud; } } } } }