protected void NotificarValidacoesErro(ValidationResult validationResult)
 {
     foreach (var error in validationResult.Errors)
     {
         _mediator.PublicarTarefa(new DomainNotification(error.PropertyName, error.ErrorMessage));
     }
 }
        public Task Handle(RegistrarTarefaCommand message, CancellationToken cancellationToken)
        {
            var tarefa = Tarefa.TarefaFactory.NovoTarefaCompleto(message.Id, message.Titulo, message.Descricao, message.Inicio, message.Encerramento);

            if (!TarefaValido(tarefa))
            {
                return(Task.FromCanceled(cancellationToken));
            }

            // TODO:
            // Validacoes de negocio!
            // Organizador pode registrar tarefa?

            _tarefaRepository.Adicionar(tarefa);

            if (Commit())
            {
                _mediator.PublicarTarefa(new TarefaRegistradoEvent(tarefa.Id, tarefa.Titulo, tarefa.Descricao, tarefa.Inicio, tarefa.Encerramento));
            }
            return(Task.CompletedTask);
        }
 protected void NotificarErro(string codigo, string mensagem)
 {
     _mediator.PublicarTarefa(new DomainNotification(codigo, mensagem));
 }