public async Task <IActionResult> ChangeTitle( [FromServices] IMediator mediator, [FromServices] ChangeTaskTitlePresenter presenter, [FromBody][Required] ChangeTaskTitleRequest request) { var accountId = this.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "AccountId").Value; var input = new ChangeTitleTaskInput( new BaseEntityId(new Guid(accountId)), new BaseEntityId(request.TableId), new BaseEntityId(request.TaskId), new TaskText(request.Title)); await mediator.PublishAsync(input); return(presenter.ViewModel); }
public async Task Handle(ChangeTitleTaskInput input) { if (input is null) { outputPort.WriteError(Message.InputIsNull); return; } try { var task = await tableRepository.GetTaskAsync(input.TableId, input.AccountId, input.TaskId); task.ChangeTitle(input.Title); await unitOfWork.Save(); BuildOutput(task); } catch (Exception e) { outputPort.WriteError(e.Message); } }