Esempio n. 1
0
        public async override Task HandleAsync(ChangeProcessoCommand request)
        {
            if (request.Responsaveis.Count() != request.Responsaveis.Distinct().Count())
            {
                throw new ProcessoResponsavelDuplicatedException();
            }

            var processo = await _processoRepository.FindAsync(request.ID);

            if (processo == null)
            {
                throw new ProcessoNotFoundException();
            }

            var responsaveis = await _responsavelRepository.GetResponsaveisByIDsAsync(request.Responsaveis);

            var situacao = await _situacaoRepository.FindAsync(request.SituacaoID);

            processo.Update(request.NumeroProcessoUnificado,
                            request.Distribuicao,
                            request.PastaFisicaCliente,
                            request.Descricao,
                            request.SegredoJustica,
                            situacao,
                            responsaveis,
                            request.ProcessoPaiID);

            await _processoRepository.SaveChangesAsync();
        }
        public async override Task HandleAsync(RemoveProcessoDomainEvent request)
        {
            var title           = TechnicalEvaluationMessages.EmailTitle;
            var message         = string.Format(TechnicalEvaluationMessages.EmailRemovedMessage, request.Processo.NumeroProcessoUnificado);
            var responsaveisIDs = request.Processo.ProcessoResponsaveis.Select(a => a.ResponsavelID);
            var responsaveis    = await _responsavelRepository.GetResponsaveisByIDsAsync(responsaveisIDs);

            var emails = responsaveis.Select(a => a.Email).ToArray();

            _mailSender.Send(title, message, emails);
        }