public ICollection <Email> RealizarProcessamentoGerarEmails(IFormatadorEmailServiceFactory formatadorFactory) { if (StatusProcessamentoEtapa != EStatusProcessamentoEtapa.Processando) { throw new CustomException("O processamento de uma etapa só pode ocorrer quando o status for igual a 'Processando'."); } try { IFormatadorEmailService formatador = ObterFomatadorEmail(formatadorFactory); ICollection <Email> emails = new List <Email>(); if (formatador != null) { emails = formatador.FormatarEmails().SelectMany(e => e.DividirDestinatarios()).ToList(); } FinalizarProcessamento(EStatusProcessamentoEtapa.ProcessadoComSucesso); return(emails); } catch (Exception e) { var mensagem = $"Erro ao processar mudança de etapa/envio de e-mail. Contate o suporte.\r\n{e.Message}"; FinalizarProcessamento(EStatusProcessamentoEtapa.ErroProcessamento, mensagem); return(new List <Email>()); } }
private IFormatadorEmailService ObterFomatadorEmail(IFormatadorEmailServiceFactory formatadorFactory) { switch (EtapaCronograma.EtapaObrigatoriaId) { case (ECodigoEtapaObrigatoria.Convocacao): if (Eleicao.Configuracao.EnvioEditalConvocao) { return(formatadorFactory.ObterFormatadorEmailParaComunicadosGeraisProcessamentoEtapa(ETipoTemplateEmail.EditalConvocacao, Eleicao)); } break; case (ECodigoEtapaObrigatoria.Inscricao): if (Eleicao.Configuracao.EnvioConviteInscricao) { return(formatadorFactory.ObterFormatadorEmailParaComunicadosGeraisProcessamentoEtapa(ETipoTemplateEmail.ConviteParaInscricao, Eleicao)); } break; case (ECodigoEtapaObrigatoria.Votacao): if (Eleicao.Configuracao.EnvioConviteVotacao) { return(formatadorFactory.ObterFormatadorEmailParaComunicadosGeraisProcessamentoEtapa(ETipoTemplateEmail.ConviteParaVotacao, Eleicao)); } break; default: return(null); } return(null); }
public UsuarioAppService( IUnitOfWork unitOfWork, IFormatadorEmailServiceFactory formatadorFactory, EmailConfiguration emailConfiguration) : base(unitOfWork, unitOfWork.UsuarioRepository) { _formatadorFactory = formatadorFactory; _emailConfiguration = emailConfiguration; }
public EleicaoAppService( IUnitOfWork unitOfWork, IArquivoAppService arquivoAppService, IFormatadorEmailServiceFactory formatadorFactory, EmailConfiguration emailConfiguration, IExcelService excelService) : base(unitOfWork, unitOfWork.EleicaoRepository) { _arquivoAppService = arquivoAppService; _formatadorFactory = formatadorFactory; _emailConfiguration = emailConfiguration; _excelService = excelService; }
public ProcessamentoEtapaAppService(IUnitOfWork unitOfWork, EmailConfiguration emailConfiguration, IFormatadorEmailServiceFactory formatadorEmail) : base(unitOfWork, unitOfWork.ProcessamentoEtapaRepository) { _emailConfiguration = emailConfiguration; _formatadorEmail = formatadorEmail; }