public ActionResult Add(Lead lead, FormCollection form) { bool isNew = false; //write activity to the log if (lead.ID == 0) { isNew = true; lead.Status = LeadType.New; } if (!string.IsNullOrEmpty(form["Companies"])) { lead.CompanyID = System.Convert.ToInt32(form["Companies"]); // make sure we clear the company name reference if association already exists lead.CompanyName = string.Empty; } if (!string.IsNullOrEmpty(form["PriorityType"])) { lead.Priority = (PriorityType)Enum.Parse(typeof(CrumbCRM.PriorityType), form["PriorityType"], true); } if (!string.IsNullOrEmpty(form["Campaigns"])) { lead.CampaignID = System.Convert.ToInt32(form["Campaigns"]); } else if (!string.IsNullOrEmpty(form["CampaignName"])) { var campaign = new Campaign() { CreatedByID = _membershipService.GetCurrentMember().UserId, CreatedDate = DateTime.Now, Name = form["CampaignName"], Description = "" }; lead.CampaignID = _campaignService.Save(campaign); } lead.OwnerID = _membershipService.GetCurrentMember().UserId; _leadService.Save(lead); if (!string.IsNullOrEmpty(form["TagSelector"])) { var current = _tagService.GetByArea(AreaType.Lead); string[] tags = form["TagSelector"].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); tags.ToList().ForEach(t => { var tag = _tagService.GetByName(t); if (tag == null) { tag = new Tag() { Name = t.ToLower(), CreatedDate = DateTime.Now, CreatedByID = _membershipService.GetCurrentMember().UserId }; _tagService.Save(tag); } if (!current.Contains(tag)) { _leadService.AssignTag(lead, tag); } }); } if (isNew) { _activityService.Create("was added", AreaType.Lead, User.Identity.Name, lead.ID); } TempData.Add("StatusMessage", "Lead added"); return(RedirectToAction("Index")); }