public virtual async Task <ResultModel> UpdateTaskAsync(UpdateTaskViewModel task) { var dbTaskResult = _context.Tasks .Include(x => x.AssignedUsers) .FirstOrDefault(x => (x.Id == task.Id) & (x.IsDeleted == false)); if (dbTaskResult == null) { return(ExceptionMessagesEnum.TaskNotFound.ToErrorModel()); } var taskModel = TaskMapper(task, dbTaskResult); _context.Tasks.Update(taskModel); var result = await _context.PushAsync(); if (result.IsSuccess) { await AddOrUpdateUsersToTaskGroupAsync(dbTaskResult, task.UserTeam); await _notify.UpdateTaskNotificationAsync(taskModel); } return(new ResultModel { IsSuccess = result.IsSuccess, Errors = result.Errors }); }
public virtual async Task <ResultModel> UpdateTaskAsync(UpdateTaskViewModel task) { var dbTaskResult = _context.Tasks .Include(x => x.AssignedUsers) .FirstOrDefault(x => (x.Id == task.Id) & (x.IsDeleted == false)); if (dbTaskResult == null) { return(ExceptionMessagesEnum.TaskNotFound.ToErrorModel()); } var lastStatus = dbTaskResult.Status; var lastPriority = dbTaskResult.TaskPriority; var taskModel = TaskMapper(task, dbTaskResult); _context.Tasks.Update(taskModel); var result = await _context.PushAsync(); if (!result.IsSuccess) { return(result); } await AddOrUpdateUsersToTaskGroupAsync(dbTaskResult, task.UserTeam); if (task.Status != lastStatus) { await _notify.ChangeStatusTaskNotificationAsync(taskModel, lastStatus); } else if (task.TaskPriority != lastPriority) { await _notify.ChangePriorityTaskNotificationAsync(taskModel, lastPriority); } else { await _notify.UpdateTaskNotificationAsync(taskModel); } return(result); }