//Gerar Registro de contratação public void gerarContratacaoEmail(PlanoContratacao OPlanoContratacao) { List <string> listaEmails = new List <string>(); List <string> listaCopias = new List <string>(); listaEmails.Add(OPlanoContratacao.Pessoa.emailPrincipal); Dictionary <string, object> infosEmail = new Dictionary <string, object>(); infosEmail["PlanoContratacao"] = (OPlanoContratacao as object); EnvioEmailAdapter EnvioEmail = EnvioPlanoContratacao.factory(HttpContextFactory.Current.User.idOrganizacao(), listaEmails, listaCopias); EnvioEmail.enviar(infosEmail, ""); }
public ActionResult enviarEmail(EmailNovoVM ViewModel) { string nomeView = "criar-novo-email"; if (!ModelState.IsValid) { return(View(nomeView, ViewModel)); } var ConfiguracaoSistema = ConfiguracaoSistemaBL.getInstance.carregar(HttpContextFactory.Current.User.idOrganizacao()); LogEmail NovoEmail = new LogEmail(); NovoEmail.flagFluxo = EmailBL.FLAG_EMAIL_ENVIADO; NovoEmail.emailRemetente = ViewModel.emailRemetente; NovoEmail.nomeRemetente = ConfiguracaoSistema.tituloSistema; NovoEmail.assunto = ViewModel.assunto; NovoEmail.corpoMensagem = ViewModel.corpoMensagem; NovoEmail.dtEnvio = DateTime.Now; //Buscar dados completos dos contatos (se houver) List <string> listaEmails = new List <string>(); listaEmails.AddRange(ViewModel.listaDestinos); listaEmails.AddRange(ViewModel.listaCopias); listaEmails.AddRange(ViewModel.listaCopiasOcultas); var listaContatos = this.OEmailBL.listarContatos("").Where(x => listaEmails.Contains(x.email)).ToList(); ViewModel.listaDestinos.ForEach(x => { var Contato = listaContatos.Where(c => c.email == x).FirstOrDefault(); NovoEmail.listaEmailDestino.Add(new LogEmailDestino { nomeDestino = (Contato == null? "": Contato.nome), emailDestino = (Contato == null? x: Contato.email), flagCopia = "N", flagCopiaOculta = "N" }); }); ViewModel.listaCopias.ForEach(x => { var Contato = listaContatos.FirstOrDefault(c => c.email == x); NovoEmail.listaEmailDestino.Add(new LogEmailDestino { nomeDestino = (Contato == null? "": Contato.nome), emailDestino = (Contato == null? x: Contato.email), flagCopia = "S", flagCopiaOculta = "N" }); }); ViewModel.listaCopiasOcultas.ForEach(x => { var Contato = listaContatos.FirstOrDefault(c => c.email == x); NovoEmail.listaEmailDestino.Add(new LogEmailDestino { nomeDestino = (Contato == null? "": Contato.nome), emailDestino = (Contato == null? x: Contato.email), flagCopia = "N", flagCopiaOculta = "S" }); }); EnvioEmailAdapter EmailAdapter = EnvioCorreioInterno.factory(User.idOrganizacao(), ViewModel.listaDestinos, ViewModel.listaCopias, ViewModel.listaCopiasOcultas); var ORetorno = EmailAdapter.enviar(new Dictionary <string, object> { { "mensagem", NovoEmail.corpoMensagem } }, NovoEmail.assunto); if (ORetorno.flagError) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Não foi possível enviar o e-mail!"); return(View(nomeView, ViewModel)); } if (!this.OEmailBL.salvarEmail(NovoEmail)) { this.Flash(UtilMessage.TYPE_MESSAGE_ERROR, "Houve um problema ao salvar o e-mail enviado!"); return(View(nomeView, ViewModel)); } return(Content("OK")); }