public async Task <Todo> Handle(CreateTodoCommand request, CancellationToken cancellationToken) { // TODO: who is responsible for generating IDs? it depends, but maybe the more correct approach is for the // client to send it. Some discussion: https://github.com/gregoryyoung/m-r/issues/17 // https://stackoverflow.com/questions/43433318/cqrs-command-return-values var todo = await _todoRepository.CreateNewAsync(cancellationToken); todo.Create(request); await _todoRepository.SaveAsync(todo); // Should commands care about results? Or just success/fail? return(todo); }