/// <summary> /// Delete appointments from source /// </summary> /// <param name="syncProfile"></param> /// <param name="sourceCalendarSpecificData"></param> /// <param name="syncCallback"></param> /// <returns> /// </returns> private bool DeleteSourceTasks(TaskSyncProfile syncProfile, SyncMetric syncMetric, IDictionary <string, object> sourceCalendarSpecificData, SyncCallback syncCallback) { //if (syncProfile.SyncSettings.DisableDelete) //{ // return true; //} //Updating entry isDeleteOperation status TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.ReadingEntriesToDelete, SourceTaskService.TaskServiceName); //Getting appointments to isDeleteOperation TaskSyncEngine.GetSourceEntriesToDelete(syncProfile, SourceTasks, DestinationTasks); var appointmentsToDelete = TaskSyncEngine.SourceTasksToDelete; //Updating Get entry isDeleteOperation status TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.EntriesToDelete, appointmentsToDelete.Count); if (appointmentsToDelete.Count == 0) { TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); return(true); } //Updating isDeleteOperation status TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.DeletingEntries, SourceTaskService.TaskServiceName); //Deleting entries var deletedTasks = SourceTaskService.DeleteReminderTasks(appointmentsToDelete, sourceCalendarSpecificData).Result; var isSuccess = deletedTasks.IsSuccess; //Update status if entries were successfully deleted TaskSyncStatus = StatusHelper.GetMessage(isSuccess ? SyncStateEnum.DeletingEntriesComplete : SyncStateEnum.DeletingEntriesFailed); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); if (isSuccess) { syncMetric.SourceMetric.DeleteCount = appointmentsToDelete.Count; syncMetric.SourceMetric.DeleteFailedCount = appointmentsToDelete.Count - deletedTasks.Count; for (var index = 0; index < appointmentsToDelete.Count; index++) { SourceTasks.Remove(appointmentsToDelete[index]); } } return(isSuccess); }
/// <summary> /// /// </summary> /// <param name="syncProfile"></param> /// <param name="syncMetric"></param> /// <param name="sourceCalendarSpecificData"></param> /// <param name="destinationCalendarSpecificData"></param> /// <returns></returns> private bool UpdateEntries(TaskSyncProfile syncProfile, SyncMetric syncMetric, IDictionary <string, object> sourceCalendarSpecificData, IDictionary <string, object> destinationCalendarSpecificData) { var isSuccess = true; if (TaskSyncEngine.SourceTasksToUpdate.Any()) { TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); //Update status for reading entries to update TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.EntriesToUpdate, TaskSyncEngine.SourceTasksToUpdate.Count, SourceTaskService.TaskServiceName); var updatedTasks = SourceTaskService.UpdateReminderTasks(TaskSyncEngine.SourceTasksToUpdate, sourceCalendarSpecificData).Result; isSuccess = updatedTasks.IsSuccess; TaskSyncStatus = StatusHelper.GetMessage(isSuccess ? SyncStateEnum.UpdateEntriesSuccess : SyncStateEnum.UpdateEntriesFailed); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); syncMetric.SourceMetric.UpdateCount = TaskSyncEngine.SourceTasksToUpdate.Count; syncMetric.SourceMetric.UpdateFailedCount = TaskSyncEngine.SourceTasksToUpdate.Count - updatedTasks.Count; } if (TaskSyncEngine.DestTasksToUpdate.Any()) { TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); //Update status for reading entries to update TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.EntriesToUpdate, TaskSyncEngine.DestTasksToUpdate.Count, DestinationTaskService.TaskServiceName); var updatedTasks = DestinationTaskService.UpdateReminderTasks(TaskSyncEngine.DestTasksToUpdate, destinationCalendarSpecificData).Result; isSuccess = updatedTasks.IsSuccess; TaskSyncStatus = StatusHelper.GetMessage(isSuccess ? SyncStateEnum.UpdateEntriesSuccess : SyncStateEnum.UpdateEntriesFailed); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); syncMetric.DestMetric.UpdateCount = TaskSyncEngine.DestTasksToUpdate.Count; syncMetric.DestMetric.UpdateFailedCount = TaskSyncEngine.DestTasksToUpdate.Count - updatedTasks.Count; } return(isSuccess); }
/// <summary> /// Add appointments to source /// </summary> /// <param name="syncProfile"></param> /// <param name="syncMetric"></param> /// <param name="sourceCalendarSpecificData"></param> /// <returns> /// </returns> private bool AddSourceTasks(TaskSyncProfile syncProfile, SyncMetric syncMetric, IDictionary <string, object> sourceCalendarSpecificData) { //Update status for reading entries to add TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.ReadingEntriesToAdd, SourceTaskService.TaskServiceName); //Get entries to add TaskSyncEngine.GetSourceEntriesToAdd(syncProfile, SourceTasks, DestinationTasks); var appointmentsToAdd = TaskSyncEngine.SourceTasksToAdd; TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.EntriesToAdd, appointmentsToAdd.Count); if (appointmentsToAdd.Count == 0) { TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); return(true); } TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.AddingEntries, SourceTaskService.TaskServiceName); //Add entries to calendar var addedTasks = SourceTaskService.AddReminderTasks(appointmentsToAdd, sourceCalendarSpecificData) .Result; var isSuccess = addedTasks.IsSuccess; //Update status if entries were successfully added TaskSyncStatus = StatusHelper.GetMessage(isSuccess ? SyncStateEnum.AddEntriesComplete : SyncStateEnum.AddEntriesFailed); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); if (isSuccess) { syncMetric.SourceMetric.AddCount = appointmentsToAdd.Count; //LoadSourceId(addedTasks, DestinationTasks.TaskListId); SourceTasks.AddRange(addedTasks); if (syncProfile.SyncMode == SyncModeEnum.TwoWay) { //var updateDestList = UpdateWithChildId(addedTasks, DestinationTasks); //TaskSyncEngine.DestTasksToUpdate.AddRangeCompareForUpdate(updateDestList); } } return(isSuccess); }
/// <summary> /// </summary> /// <param name="endDate"></param> /// <param name="sourceCalendarSpecificData"></param> /// <param name="destinationCalendarSpecificData"></param> /// <param name="startDate"></param> /// <returns> /// </returns> private bool LoadTasks(IDictionary <string, object> sourceCalendarSpecificData, IDictionary <string, object> destinationCalendarSpecificData) { //Update status TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.SourceReading, SourceTaskService.TaskServiceName); //Get source calendar SourceTasks = SourceTaskService.GetReminderTasksInRangeAsync(sourceCalendarSpecificData) .Result; if (SourceTasks == null) { TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.SourceReadFailed); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); return(false); } //Update status TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.SourceRead, SourceTaskService.TaskServiceName, SourceTasks.Count); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.DestReading, DestinationTaskService.TaskServiceName); //Get destination calendar DestinationTasks = DestinationTaskService.GetReminderTasksInRangeAsync( destinationCalendarSpecificData).Result; if (DestinationTasks == null) { TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.DestReadFailed); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); return(false); } TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.DestRead, DestinationTaskService.TaskServiceName, DestinationTasks.Count); TaskSyncStatus = StatusHelper.GetMessage(SyncStateEnum.Line); return(true); }