예제 #1
0
        public void Handle(AtualizarAvaliacaoCommand cmd)
        {
            Avaliacao avaliacao = AvaliacaoExistente(cmd.ClienteId, cmd.EventoId, cmd.MessageType);

            if (avaliacao != null)
            {
                avaliacao.AtualizarAvaliacao(cmd.Nota, cmd.Descricao);

                if (!avaliacao.IsValid())
                {
                    NotificarValidacoesErro(avaliacao.ValidationResult);
                    return;
                }

                _repository.AtualizarAvaliacao(avaliacao);

                if (Commit())
                {
                    _mediator.PublicarEvento(new AvaliacaoAtualizadaEvent(avaliacao.Nota, avaliacao.Descricao, avaliacao.EventoId, avaliacao.ClienteId));
                }
            }
        }