public async Task <bool> Handle(UpdateTaskStatusCommand request, CancellationToken cancellationToken)
        {
            var task = _TaskRepository.GetById(request.Id).Result.ToDomain <Task>(_Mapper);

            task.SetStatus(request.Status);

            var taskModel = task.ToModel <Command.Task>(_Mapper);

            await _TaskRepository.Update(taskModel);

            await _UnitOfWork.Commit();

            var busMessage = new Message();

            busMessage.MessageType = "AddUpdateTaskProject";
            busMessage.SetData(new
            {
                Project = task.Project.ToQueryModel <ProjectQuery.Project>(_Mapper),
                Task    = task.ToQueryModel <Query.Task>(_Mapper)
            });

            await _Bus.SendMessage(busMessage);

            return(true);
        }
Exemple #2
0
        private async Task UpdateStatus(IMediator mediator, TaskModel task, string resultId, Domain.Enums.TaskStatus status, string message)
        {
            var command = new UpdateTaskStatusCommand()
            {
                Id       = task.Id,
                ResultId = resultId,
                Status   = status,
                Message  = message
            };

            await mediator.Send(command);
        }
        public void TaskCommandHandler_Handle_UpdateTaskStatusCommand_AddInvalidStatusValidTask_ThrowException()
        {
            IRequestHandler <UpdateTaskStatusCommand, bool> handler = GetCommandHandlerInstance();
            var command = new UpdateTaskStatusCommand()
            {
                Id     = WindowsTaskId,
                Status = (CrossCutting.TaskStatusEnum) 7
            };

            Action result = () => handler.Handle(command, default).Wait();

            result.Should().Throw <ValidationException>();
        }
        public void TaskCommandHandler_Handle_UpdateTaskStatusCommand_AddValidStatusInvalidTask_ThrowException()
        {
            IRequestHandler <UpdateTaskStatusCommand, bool> handler = GetCommandHandlerInstance();
            var command = new UpdateTaskStatusCommand()
            {
                Id     = Guid.NewGuid(),
                Status = CrossCutting.TaskStatusEnum.DONE
            };

            Action result = () => handler.Handle(command, default).Wait();

            result.Should().Throw <ElementNotFoundException>();
        }
        public void TaskCommandHandler_Handle_UpdateTaskStatusCommand_AddValidStatus()
        {
            IRequestHandler <UpdateTaskStatusCommand, bool> handler = GetCommandHandlerInstance();
            var command = new UpdateTaskStatusCommand()
            {
                Id     = FacebookTaskId,
                Status = CrossCutting.TaskStatusEnum.DONE
            };

            var result = handler.Handle(command, default).Result;

            result.Should().BeTrue();
        }
        public async Task <IActionResult> UpdateTaskStatus(Guid id, UpdateTaskStatusCommand command)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = await _taskService.UpdateTaskStatusCommandHandler(command);

                return(Ok(result));
            }
            catch (NotFoundException <Guid> )
            {
                return(NotFound());
            }
        }
Exemple #7
0
 public async Task <UpdateTaskStatusCommandResult> UpdateTaskStatus(UpdateTaskStatusCommand command)
 {
     return(await _httpClient.PutJsonAsync <UpdateTaskStatusCommandResult>($"tasks/{command.Id}", command));
 }
Exemple #8
0
        public async Task <UpdateTaskStatusCommandResult> UpdateTaskStatusCommandHandler(UpdateTaskStatusCommand command)
        {
            var isSucceed = true;
            var task      = await _taskRepository.ByIdAsync(command.Id);

            _mapper.Map <UpdateTaskStatusCommand, Tasks>(command, task);

            var affectedRecordsCount = await _taskRepository.UpdateRecordAsync(task);

            if (affectedRecordsCount < 1)
            {
                isSucceed = false;
            }

            return(new UpdateTaskStatusCommandResult()
            {
                Succeed = isSucceed
            });
        }