public ActionResult Edit(MarketingViewModel model)
        {
            if (EmailMarketingValido(model)) {
            var emailMarketing = EmailMarketingService.getEmailMarketing(model.IDEmailMarketing);
            fillCTM(emailMarketing, model);

            EmailMarketingService.save(emailMarketing);

            addMensagemSucesso("E-mail marketing alterado com sucesso!");
              }

              return View(model);
        }
        public ActionResult Create(MarketingViewModel model)
        {
            if (EmailMarketingValido(model)) {
            var emailsMarketing = new EmailsMarketing();
            fillCTM(emailsMarketing, model);

            EmailMarketingService.save(emailsMarketing);

            addMensagemSucesso("E-mail marketing criado com sucesso!");
              }

              return View(model);
        }
        public bool EmailMarketingValido(MarketingViewModel model)
        {
            if (string.IsNullOrWhiteSpace(model.Remetente))
            addMensagemErro("Campo Remente é obrigatório");
              else {
            var remetente = model.Remetente.Split(',');

            if (remetente.Count() > 1)
              addMensagemErro("Só é possível adicionar um remetente");
            else if (!model.Remetente.IsValidEmail())
              addMensagemErro("E-mail do remente inválido");
              }

              if (string.IsNullOrWhiteSpace(model.Destinatario))
            addMensagemErro("Campo Destinatário é obrigatório");
              else {
            var destinatarios = model.Destinatario.Split(',');

            if (destinatarios.Any(destinatario => !destinatario.IsValidEmail())) {
              addMensagemErro("Um ou mais e-mail do campo Destionatário estão inválidos");
            }
              }

              if (string.IsNullOrWhiteSpace(model.Assunto))
            addMensagemErro("Campo Assunto é obrigatório");

              if (string.IsNullOrWhiteSpace(model.Corpo))
            addMensagemErro("Campo Corpo do e-mail é obrigatório");

              return !listMensagensErros.Any();
        }
        public ActionResult Create()
        {
            var model = new MarketingViewModel();

              return View(model);
        }
        private MarketingViewModel getViewModel(EmailsMarketing emailMarketing)
        {
            var model = new MarketingViewModel() {
            IDEmailMarketing = emailMarketing.IDEmailMarketing,
            Assunto = emailMarketing.Assunto,
            Corpo = emailMarketing.Corpo,
            DataCriacao = emailMarketing.DataCriacao,
            Destinatario = emailMarketing.Destinatarios,
            Remetente = emailMarketing.Remetente
              };

              return model;
        }
 private void fillCTM(EmailsMarketing emailMarketing, MarketingViewModel model)
 {
     emailMarketing.IDUsuario = visitor.ID;
       emailMarketing.Assunto = model.Assunto;
       emailMarketing.Corpo = model.Corpo;
       emailMarketing.Destinatarios = model.Destinatario;
       emailMarketing.Remetente = model.Remetente;
       emailMarketing.IDEmailMarketing = model.IDEmailMarketing;
 }
 public ActionResult Index(MarketingViewModel model)
 {
     model.ListResultado = EmailMarketingService.getEmailMarketing(model.Assunto).Select(getViewModel).ToList();
       return View(model);
 }
 public ActionResult Index()
 {
     var model = new MarketingViewModel {
     ListResultado = EmailMarketingService.getEmailMarketing(null).Select(getViewModel).ToList()
       };
       return View(model);
 }
        public ActionResult Enviar(MarketingViewModel model)
        {
            if (EmailMarketingValido(model)) {
            EmailsMarketing emailMarketing = model.IDEmailMarketing > 0 ? EmailMarketingService.getEmailMarketing(model.IDEmailMarketing) : new EmailsMarketing();

            fillCTM(emailMarketing, model);
            EmailMarketingService.save(emailMarketing);
              }

              var mailObject = new MailMessage();
              var smtpServer = new SmtpClient(ConfigurationManager.AppSettings.Get("email.smtp"));
              var htmlBody = "<html><body>{0}</body></html>";
              mailObject.From = new MailAddress(model.Remetente);

              model.Destinatario.Split(',').ForEach(email => mailObject.To.Add(new MailAddress(email)));

              mailObject.Subject = model.Assunto;
              mailObject.Body = String.Format(htmlBody, model.Corpo);
              mailObject.IsBodyHtml = true;

              smtpServer.Port = Convert.ToInt32(ConfigurationManager.AppSettings.Get("email.port"));
              smtpServer.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings.Get("email.user"), ConfigurationManager.AppSettings.Get("email.password"));
              smtpServer.EnableSsl = true;

              smtpServer.Send(mailObject);

              addMensagemSucesso("E-mail marketing enviado com sucesso!");

              return RedirectToAction("Index", "Marketing");
        }