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); }