public async Task <ValidationResult> Handle(AtualizarOrdemCommand message, CancellationToken cancellationToken)
        {
            if (!message.EhValido())
            {
                return(message.ValidationResult);
            }

            var ordemExistente = await _ordemRepository.ObterPorId(message.Id);

            if (ordemExistente != null)
            {
                ordemExistente.Solucao     = message.Solucao;
                ordemExistente.DataSolucao = message.DataSolucao;

                _ordemRepository.Atualizar(ordemExistente);

                ordemExistente.AdicionarEvento(
                    new OrdemAtualizadaEvent(
                        message.Id, message.IdSolicitante, message.IdSolicitacao,
                        message.CodDepartamento, message.Descricao, message.Solucao,
                        message.DataCadastro, message.DataSolucao));

                return(await PersistirDados(_ordemRepository.UnitOfWork));
            }
            else
            {
                AdicionarErro("Ordem não localizada.");
                return(ValidationResult);
            }
        }
예제 #2
0
 public async Task <Ordem> ObterPorId(Guid id)
 {
     return(await _ordemRepository.ObterPorId(id));
 }