/// <summary> /// /// </summary> public UtilRetorno gerarNotificacao(object Origem) { ListaAssociadosDTO OListaAssociadosDTO = (ListaAssociadosDTO)Origem; var ORetorno = UtilRetorno.newInstance(false); var OMensagem = this.MensagemEmailConsultaBL.listar(IdentificacaoMensagemEmailConst.ASSOCIADO_LINK_ATUALIZACAO).FirstOrDefault() ?? new MensagemEmail(); if (OMensagem.titulo.isEmpty()) { OMensagem.titulo = AssociadoEmailsConst.tituloEmailAtualizacaoCadastral; } if (OMensagem.corpoEmail.isEmpty()) { OMensagem.corpoEmail = AssociadoEmailsConst.corpoEmailAtualizacaoCadastral; } var ONotificacao = new NotificacaoSistema(); ONotificacao.flagEmail = true; ONotificacao.flagTodosAssociados = false; ONotificacao.flagAssociadosEspecificos = true; ONotificacao.flagSistema = false; ONotificacao.flagMobile = false; ONotificacao.idTipoNotificacao = TipoNotificacaoConst.ASSOCIADO_ATUALIZACAO_CADASTRAL; ONotificacao.titulo = OMensagem.titulo; ONotificacao.notificacao = OMensagem.corpoEmail; ONotificacao.dtProgramacaoEnvio = DateTime.Now; var flagSucesso = false; if (!flagSucesso) { ORetorno.flagError = true; ORetorno.listaErros.Add("Houve algum problema ao gerar o e-mail de atualização cadastral. Tente novamente mais tarde."); return(ORetorno); } return(ORetorno); }
/// <summary> /// /// </summary> private void vincularDestinos(ListaAssociadosDTO OListaAssociadosDTO, NotificacaoSistema ONotificacao) { var listaAssociados = OListaAssociadosDTO.listaAssociados; var listaNotificacoesVinculadas = new List <NotificacaoSistemaEnvio>(); foreach (var OAssociado in listaAssociados) { var listaEmailsAssociado = OAssociado.Pessoa.ToEmailList(); var listaEmail = new List <string>(); listaEmail.AddRange(listaEmailsAssociado); foreach (var email in listaEmail) { var OEnvio = new NotificacaoSistemaEnvio(); OEnvio.idNotificacao = ONotificacao.id; OEnvio.idReferencia = OAssociado.id; OEnvio.nome = OAssociado.Pessoa.nome; OEnvio.email = email; string parametrosPersonalizados = this.montarParametrosPersonalizados(OAssociado, email).abreviar(8000); OEnvio.personalizacao = parametrosPersonalizados; if (!UtilValidation.isEmail(OEnvio.email)) { OEnvio.flagExcluido = true; OEnvio.motivoExclusao = "O e-mail configurado não é válido."; } listaNotificacoesVinculadas.Add(OEnvio); } } }
public ActionResult enviarLinkAlteracao(AssociadoFiltroVM DadosConsulta) { var listaAssociados = DadosConsulta.montarQuery().Where(x => x.ativo == "S") .Select(x => new { x.id }).ToList(); if (!listaAssociados.Any()) { return(Json(new { error = true, message = "Nenhum associado ativo foi encontrado para envio do link de atualização cadastral." }, JsonRequestBehavior.AllowGet)); } var idsAssociados = listaAssociados.Select(x => x.id).ToList(); var listaAssociadosNotificacao = this.OAssociadoBL.query(User.idOrganizacao()) .Select(x => new{ x.id, x.idOrganizacao, x.idTipoAssociado, TipoAssociado = new { x.TipoAssociado.descricao }, Pessoa = new { x.Pessoa.nome, listaEmails = x.Pessoa.listaEmails.Where(l => l.dtExclusao == null).Select(l => new { l.email }).ToList() } }) .Where(x => idsAssociados.Contains(x.id)) .ToListJsonObject <Associado>(); ListaAssociadosDTO OListaAssociadosDTO = new ListaAssociadosDTO(); OListaAssociadosDTO.listaAssociados = listaAssociadosNotificacao; UtilRetorno ORetorno = this.GeradorNotificacaoBL.gerarNotificacao(OListaAssociadosDTO); if (ORetorno.flagError) { return(Json(new { error = true, message = string.Join("<br>", ORetorno.listaErros) }, JsonRequestBehavior.AllowGet)); } return(Json(new { error = false, message = "Notificação criada com sucesso!" }, JsonRequestBehavior.AllowGet)); }