// Campaign public AuditTrail(DateTime dateTime, string userName, Campaign campaign, int id, string comment) { this.AuditTrailTimeStamp = dateTime; this.AuditTrailUserName = userName; this.AuditTrailComment = comment; if(id > 0) { this.CampaignID = id; } else { this.Campaign = campaign; } }
// // GET: /Campaign/Create public ActionResult Create(string returnUrl, int CompanyID = 0) { ViewBag.ReturnUrl = returnUrl; // Create New Campaign to get Constructor Values and set Created By Campaign campaign = new Campaign(); campaign.OnCreate(User.Identity.Name); ViewBag.CompanyID = new SelectList(db.Companies.Where(c => c.CompanyStatus != archived), "CompanyID", "CompanyName"); return View(campaign); }
public ActionResult Create(Campaign campaign, string returnUrl) { if (ModelState.IsValid) { // Add Audit Entry AuditTrail audit = new AuditTrail(DateTime.Now, User.Identity.Name, campaign, campaign.CampaignID, "Create"); db.AuditTrails.Add(audit); db.Campaigns.Add(campaign); db.SaveChanges(); return RedirectToAction("Edit", new { id = campaign.CampaignID, ReturnUrl = returnUrl }); } ViewBag.CompanyID = new SelectList(db.Companies.Where(c => c.CompanyStatus != archived), "CompanyID", "CompanyName", campaign.CompanyID); return View(campaign); }
public ActionResult Edit(Campaign campaign, string returnUrl) { string preSaveStatus = db.Campaigns.Where(c => c.CampaignID == campaign.CampaignID).Select(c => c.CampaignStatus).FirstOrDefault(); if (ModelState.IsValid) { // Add Audit Entry AuditTrail audit = new AuditTrail(DateTime.Now, User.Identity.Name, campaign, campaign.CampaignID, "Edit"); db.AuditTrails.Add(audit); // Send Emails #region SendEmails // Check if the status is changed if (preSaveStatus != campaign.CampaignStatus) { List<EmailTo> sendEmailTos = MyExtensions.GetEmailTo(campaign.CampaignStatus); var urlBuilder = Request.Url.AbsoluteUri; if (sendEmailTos != null && sendEmailTos.Count > 0) { UserMailer.SendStatusUpdate(sendEmailTos, "Company Updated by: " + MyExtensions.DisplayPrintFriendlyName(User.Identity.Name), urlBuilder.ToString(), db.Companies.Where(c => c.CompanyID == campaign.CompanyID).FirstOrDefault(), campaign, null).Send(); } } #endregion // Save entry into DB var current = db.Campaigns.Find(campaign.CampaignID); db.Entry(current).CurrentValues.SetValues(campaign); db.SaveChanges(); if (returnUrl == null) { return RedirectToAction("Index"); } return Redirect(returnUrl); } ViewBag.CompanyID = new SelectList(db.Companies.Where(c => c.CompanyStatus != archived), "CompanyID", "CompanyName", campaign.CompanyID); return View(campaign); }
public virtual MvcMailMessage SendStatusUpdate(List<EmailTo> emailTos, string title, string link, Company company = null, Campaign campaign = null, Product product = null) { string subject = "";// Check if we have an object if(product != null) { subject = company.CompanyName + ": Product Status Update " + DateTime.Now.ToString("f") + " : " + product.ProductName; ViewBag.Type = "Product"; ViewBag.Name = product.ProductName; ViewBag.Status = product.ProductStatus; ViewBag.Link = link; ViewBag.CampaignData = "Campaign Name: " + campaign.CampaignName; ViewBag.CompanyData = "Company Name: " + company.CompanyName; } else if(campaign != null) { subject = company.CompanyName + ": Campaign Status Update - " + campaign.CampaignName; ViewBag.Type = "Campaign"; ViewBag.Name = campaign.CampaignName; ViewBag.Status = campaign.CampaignStatus; ViewBag.Link = link; ViewBag.CompanyData = "Company Name: " + company.CompanyName; } else if(company != null) { subject = company.CompanyName + ": Company Status Update"; ViewBag.Type = "Company"; ViewBag.Name = company.CompanyName; ViewBag.Status = company.CompanyStatus; ViewBag.Link = link; } else { throw new System.ArgumentException("All Objects are Null", "UserMailer.cs"); } return Populate(x => { x.Subject = subject; x.ViewName = "SendStatusUpdate"; foreach(EmailTo emailTo in emailTos) { switch(emailTo) { case EmailTo.Account_Manager: x.To.Add(company.CompanyAccountManagerEmail); break; case EmailTo.Inventory_Buyers: x.To.Add("*****@*****.**"); break; case EmailTo.Merchandisers: x.To.Add("*****@*****.**"); break; case EmailTo.Mentor: x.To.Add(company.CompanyMentorEmail); break; default: break; } } }); }