Esempio n. 1
0
        public TaskDTO ProgressTask(TodoContext context, ProgressTaskRequest progressTaskRequest)
        {
            _progressTaskRequestValidator.ValidateAndThrow(progressTaskRequest);

            var user = _authenticationService.GetUserBySessionToken(
                context,
                progressTaskRequest.SessionToken);

            var task = context.Tasks
                       .Include("User")
                       .SingleOrDefault(t => t.TaskId == progressTaskRequest.TaskId);

            if (task == null)
            {
                throw new TodoException(ServiceError.NoSuchTask);
            }

            if (task.UserId != user.UserId)
            {
                throw new TodoException(ServiceError.NoPermissions);
            }

            var newTaskStatus = _taskProgressLogic.GetNextFor((TaskStatus)task.TaskStatus);

            task.TaskStatus = (int)newTaskStatus;
            task.ModifiedAt = _timeProvider.GetCurrentTime();
            context.SaveChanges();

            return(_taskToTaskDtoMapper.Map(task));
        }
Esempio n. 2
0
        public ServiceResult <TaskDTO> ProgressTask(string sessionToken, int taskId)
        {
            var progressTaskRequest = new ProgressTaskRequest
            {
                SessionToken = sessionToken,
                TaskId       = taskId
            };

            return(ExecuteWithExceptionHandling(
                       context => ProgressTaskTransactionScript.ProgressTask(
                           context,
                           progressTaskRequest)));
        }