public JsonResult SendEmailToClients(DestinataryTypeViewModel model) { try { if (ModelState.IsValid) { IEnumerable <String> emails = this.FindDestinatariesByCategory(model); Session["DestinatariesEmails"] = emails; String template = Session["FinalTemplate"].ToString(); if (emails.Count() == 0) { return(Json(new { Result = "NOOK_EMPTY", Redirect = string.Empty, Error = "El grupo seleccionado aún no posee destinatarios", Description = string.Empty })); } if (!String.IsNullOrEmpty(template)) { SendGridMailing sg = new SendGridMailing(); sg.Execute(template, emails.Distinct().ToList()); } return(Json(new { Result = "OK", Redirect = "/Emails/ThankYouPage", Error = string.Empty, Description = string.Empty })); } return(Json(new { Result = "NOOK", Redirect = string.Empty, Error = "Debe seleccionar al menos un grupo como destinatario", Description = string.Empty })); } catch (Exception ex) { return(Json(new { Result = "NOOK", Redirect = string.Empty, Error = "Ha surgido un error inesperado. Por favor vuelva a intentar", Description = ex.Message })); } }
private IEnumerable <String> FindDestinatariesByCategory(DestinataryTypeViewModel model) { IEnumerable <String> emails = new List <string>(); Utils.Catalog.Destinataries destinataryCategory = (Utils.Catalog.Destinataries)System.Enum.Parse(typeof(Utils.Catalog.Destinataries), model.Type); if (destinataryCategory == Utils.Catalog.Destinataries.Activity) { emails = this.GetDestinataries(destinataryCategory, model.ID); } else { emails = this.GetDestinataries(destinataryCategory); } return(emails); }