private void SaveTasksToDb(List <TaskSync> taskFromDb, List <TaskSync> mergedTasks, DateTime lastSyncDate) { string userId = string.Empty; if (mergedTasks.Count != 0) { userId = mergedTasks[0].UserId; } foreach (TaskSync task in mergedTasks) { string deleteQuery = string.Format("DELETE FROM TASK WHERE SOURCE_ID = '{0}' AND USER_ID = '{1}'", task.SourceId, userId); GenericDbHelper.RunDirectSql(deleteQuery); } foreach (TaskSync task in mergedTasks) { GenericDbHelper.Save(task); } GenericDbHelper.Flush(); }
public void Sync() { if (string.IsNullOrEmpty(Static.StaticData.Settings.Sync.Id)) { return; } try { DateTime startSync = DateTime.Now; DateTime lastSyncDate = Minder.Static.StaticData.Settings.Sync.LastSyncDate; string dateSync = DBTypesConverter.ToFullDateStringByCultureInfo(lastSyncDate); // new ErrorBox(dateSync); List <Task> allTasks = GenericDbHelper.Get <Task>(string.Format("LAST_MODIFY_DATE >= '{0}'", dateSync)); SyncObject syncObject = new SyncObject(); syncObject.UserId = Static.StaticData.Settings.Sync.Id; syncObject.Tasks = new List <Task>(); syncObject.LastSyncDate = lastSyncDate.ToUniversalTime(); foreach (Task task in allTasks) { task.UserId = Static.StaticData.Settings.Sync.Id; syncObject.Tasks.Add(task); // task.LastModifyDate = task.LastModifyDate.ToUniversalTime(); // task.DateRemainder = task.DateRemainder.ToUniversalTime(); } //Paruošti taskai siuntimui List <Task> tasksFromServer = GetSyncedTasksFromServer(syncObject); SetLocalDate(allTasks.ToArray()); m_newTasks = tasksFromServer.Count; m_log.DebugFormat("Tasks' count retrieved from server {0}", m_newTasks); // using(IConnection con = new ConnectionCollector().GetConnection()) // { foreach (Task task in tasksFromServer) { task.LastModifyDate = task.LastModifyDate.ToLocalTime(); task.DateRemainder = task.DateRemainder.ToLocalTime(); foreach (Task localTask in allTasks) { if (localTask.Equals(task)) { m_newTasks--; } } if (ExistTask(task)) { //Negalime updatinti pagal ID, nes serveryje kitoks id. GenericDbHelper.RunDirectSql(string.Format("DELETE FROM TASK WHERE SOURCE_ID = '{0}'", task.SourceId)); GenericDbHelper.Save(task); m_log.DebugFormat("Updated existing task {0}", task); } else { GenericDbHelper.Save(task); m_log.DebugFormat("Created new task {0}", task); } } GenericDbHelper.Flush(); // } if (m_newTasks > 0) { if (Synced != null) { Synced(); } } Minder.Static.StaticData.Settings.Sync.LastSyncDate = DateTime.Now; TimeSpan span = DateTime.Now - startSync; m_log.InfoFormat("Synced in {0} seconds", span.TotalSeconds); } catch (Exception e) { m_log.Error(e); } }