示例#1
0
        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
            });
        }
示例#2
0
        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);
        }