示例#1
0
 public async Task <ResponseDto <GoogleTaskList> > UpdateAsync(GoogleTaskList entity)
 {
     return(await Task.Run(async() =>
     {
         _logger.Information($"UpdateAsync: Trying to update {entity.ID}");
         var response = new ResponseDto <GoogleTaskList>
         {
             Message = string.Empty,
             Succeed = false
         };
         using (var context = new MiraiNotesContext())
         {
             try
             {
                 context.Entry(entity).State = EntityState.Modified;
                 response.Succeed = await context.SaveChangesAsync() > 0;
                 response.Result = entity;
                 _logger.Information("UpdateAsync: Completed successfully");
             }
             catch (Exception e)
             {
                 _logger.Error(e, "UpdateAsync: An unknown error occurred");
                 response.Message = GetExceptionMessage(e);
             }
         }
         return response;
     }).ConfigureAwait(false));
 }
示例#2
0
 public async Task <EmptyResponseDto> RemoveAsync(GoogleTaskList entity)
 {
     return(await Task.Run(async() =>
     {
         _logger.Information($"RemoveAsync: Trying to delete taskId = {entity.ID}");
         var response = new EmptyResponseDto
         {
             Message = string.Empty,
             Succeed = false
         };
         using (var context = new MiraiNotesContext())
         {
             try
             {
                 context.Remove(entity);
                 response.Succeed = await context.SaveChangesAsync() > 0;
                 _logger.Information("RemoveAsync: Completed successfully");
             }
             catch (Exception e)
             {
                 _logger.Error(e, "RemoveAsync: An unknown error occurred");
                 response.Message = GetExceptionMessage(e);
             }
         }
         return response;
     }).ConfigureAwait(false));
 }
示例#3
0
        private async Task <EmptyResponseDto> SaveUpTaskList(GoogleTaskList taskList)
        {
            var response = await _apiService.SaveTaskList(new GoogleTaskListModel
            {
                Title     = taskList.Title,
                UpdatedAt = taskList.UpdatedAt
            });

            var result = new EmptyResponseDto
            {
                Succeed = response.Succeed
            };

            if (response.Succeed)
            {
                taskList.GoogleTaskListID = response.Result.TaskListID;
                taskList.ToBeSynced       = false;
                taskList.LocalStatus      = LocalStatus.DEFAULT;
                taskList.UpdatedAt        = response.Result.UpdatedAt;
                result = await _dataService
                         .TaskListService
                         .UpdateAsync(taskList);
            }
            else
            {
                result.Message = response.Message ??
                                 $"An unkwon error occurred while trying to create task list {taskList.Title}";
                _logger.Error(
                    $"{nameof(SyncUpTaskListsAsync)}: An error occurred while trying to " +
                    $"save remotely taskListId = {taskList.ID}. {result.Message}");
            }
            return(result);
        }
示例#4
0
        private async Task <EmptyResponseDto> UpdateUpTaskList(GoogleTaskList taskList)
        {
            var response = await _apiService.GetTaskList(taskList.GoogleTaskListID);

            var result = new EmptyResponseDto
            {
                Succeed = response.Succeed
            };

            if (!response.Succeed)
            {
                result.Message = response.Message ??
                                 $"An unknow error occurred while trying to get {taskList.Title} from remote to be updated";
                _logger.Error(
                    $"{nameof(SyncUpTaskListsAsync)}: An error occurred while trying to get the task to " +
                    $"update remotely taskListId = {taskList.ID}. {result.Message}");
            }
            //We need to update the remote contrapart
            else if (taskList.UpdatedAt > response.Result.UpdatedAt)
            {
                response.Result.UpdatedAt = taskList.UpdatedAt;
                response.Result.Title     = taskList.Title;
                response = await _apiService.UpdateTaskList(response.Result.TaskListID, response.Result);

                result.Succeed = response.Succeed;

                if (!response.Succeed)
                {
                    result.Message = response.Message ??
                                     $"An unknow error occurred while trying to get {taskList.Title} from remote to be updated";
                    _logger.Error(
                        $"{nameof(SyncUpTaskListsAsync)}: An error occurred while trying to " +
                        $"update remotely taskListId = {taskList.ID}. {result.Message}");
                }
                else
                {
                    taskList.LocalStatus = LocalStatus.DEFAULT;
                    taskList.ToBeSynced  = false;
                    result = await _dataService.TaskListService.UpdateAsync(taskList);
                }
            }
            //we need to update the local contrapart
            else
            {
                taskList.Title       = response.Result.Title;
                taskList.LocalStatus = LocalStatus.DEFAULT;
                taskList.ToBeSynced  = false;
                taskList.UpdatedAt   = response.Result.UpdatedAt;
                result = await _dataService.TaskListService.UpdateAsync(taskList);
            }

            return(result);
        }
示例#5
0
        public async Task <ResponseDto <GoogleTaskList> > AddAsync(GoogleTaskList entity)
        {
            return(await Task.Run(async() =>
            {
                _logger.Information("AddAsync: Trying to add a new task list");
                var response = new ResponseDto <GoogleTaskList>
                {
                    Message = string.Empty,
                    Succeed = false
                };
                using (var context = new MiraiNotesContext())
                {
                    try
                    {
                        var currentUser = await context.Users
                                          .FirstOrDefaultAsync(u => u.IsActive);

                        if (currentUser == null)
                        {
                            response.Message = "Couldn't find the current active user in the db";
                            _logger.Warning("AddAsync: Couldn't find the current active user in the db");
                        }
                        else
                        {
                            entity.User = currentUser;
                            await context.AddAsync(entity);
                            response.Succeed = await context.SaveChangesAsync() > 0;
                            response.Result = entity;
                        }
                        _logger.Information("AddAsync: Completed successfully");
                    }
                    catch (Exception e)
                    {
                        _logger.Error(e, "AddAsync: An unknown error occurred");
                        response.Message = GetExceptionMessage(e);
                    }
                }
                return response;
            }).ConfigureAwait(false));
        }
示例#6
0
        private async Task <EmptyResponseDto> DeleteUpTaskList(GoogleTaskList taskList)
        {
            var response = await _apiService.DeleteTaskList(taskList.GoogleTaskListID);

            var result = new EmptyResponseDto
            {
                Succeed = response.Succeed
            };

            if (response.Succeed)
            {
                result = await _dataService.TaskListService.RemoveAsync(taskList);
            }
            else
            {
                result.Message = response.Message ??
                                 $"An unkwon error occurred while trying to delete task list {taskList.Title}";
                _logger.Error(
                    $"{nameof(SyncUpTaskListsAsync)}: An error occurred while trying to " +
                    $"delete remotely taskListId = {taskList.ID}. {result.Message}");
            }

            return(result);
        }