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);
        }
Example #2
0
 public async Task <ActionResult> Post([FromBody] CreateNewTaskCommand command)
 {
     return(this.Ok(await this.mediator.Send(command)));
 }