public virtual ActionResult SaveEmail(CrmMailEditModel model) { CrmEmail crmemail = crmService.Email(model.Email); crmemail.Name = model.Name; crmemail.Phone = model.Phone; // now process tags List<string> tagsInModel = model.Tags.Split(',').Select(t => t.Trim()).ToList(); List<string> tagsInDb = crmemail.Tags.Select(t => (t.Tagspace ?? "") + "." + (t.Tag ?? "")).ToList(); // add tags not in db foreach (var t in tagsInModel) { string tt, ts; RegexUtilities.SplitFullTag(t, out ts, out tt); crmemail.SetTag(ts, tt); } // clear tags not in model foreach (var t in tagsInDb) { if (!tagsInModel.Contains(t)) { string tt, ts; RegexUtilities.SplitFullTag(t, out ts, out tt); crmService.ClearTagForEmail(crmemail, ts, tt); } } crmService.SaveChanges(); return Redirect("/Mailing/EditEmail?email=" + model.Email); }
public virtual ActionResult EditEmail(string email) { if (email.Empty()) { return View("Email"); } CrmEmail crmemail = crmService.Email(email); CrmMailEditModel model = new CrmMailEditModel() { Name = crmemail.Name, Email = crmemail.Email, Phone = crmemail.Phone, Tags = string.Join(",", crmemail.Tags.Select(t => (t.Tagspace ?? "") + "." + (t.Tag ?? "")).ToList()) }; return View("EditEmail",model); }