public async Task <Domain.Tasks.Task> HandleNewTask(CreateNewTaskCommand createNewTaskCommand) { var task = _taskFactory.CreateTaskInstance( summary: new Domain.Tasks.ValueObjects.Summary(createNewTaskCommand.Summary), description: new Domain.Tasks.ValueObjects.Description(createNewTaskCommand.Description) ); var taskCreated = await _taskRepository.Add(task); // You may raise an event in case you need to propagate this change to other microservices await _mediator.PublishAsync(new TaskCreatedEvent(taskCreated.TaskId.ToGuid(), taskCreated.Description.ToString(), taskCreated.Summary.ToString())); return(taskCreated); }
public async Task <ActionResult> Post([FromBody] CreateNewTaskCommand command) { return(this.Ok(await this.mediator.Send(command))); }