public ActionResult AdminUpdate(CampaignAdminModel model) { if (!ModelState.IsValid) { TempData["ModelErrors"] = FindModelErrors(); TempData["CampaignAdminModel"] = model; return RedirectToAction("Admin"); } using (campaignRepository) { var campaign = campaignRepository.GetCampaignByID(model.CampaignID); if (campaign == null) { return HttpNotFound("The campaign you are looking for could not be found."); } MapCampaign(campaign, model); campaignRepository.Save(); TempData["UserFeedback"] = string.Format("'{0}' has been updated successfully.", campaign.Title); return RedirectToAction("List"); } }
private void MapCampaign(Campaign campaign, CampaignAdminModel model) { campaign.Title = model.Title; campaign.Description = model.Description; campaign.StartDate = model.StartDate; campaign.EndDate = model.EndDate; campaign.UrlSlug = model.UrlSlug; decimal amount; if (decimal.TryParse(model.AmountString, out amount)) { campaign.GoalAmount = amount; } }
public void AdminUpdate_Should_Update_Campaign_Properties_When_Successful() { var campaign = EntityHelpers.GetValidCampaign(); campaignRepository.Add(campaign); var id = campaign.CampaignID; var model = new CampaignAdminModel { CampaignID = id, AmountString = "12345.67", Title = "Something different", Description = "Some other description", StartDate = DateTime.Now.AddDays(-10), EndDate = DateTime.Now, UrlSlug = "different" }; controller.AdminUpdate(model); campaign = campaignRepository.GetCampaignByID(id); Assert.AreEqual(model.Title, campaign.Title); Assert.AreEqual(model.Description, campaign.Description); Assert.AreEqual(model.StartDate, campaign.StartDate); Assert.AreEqual(model.EndDate, campaign.EndDate); Assert.AreEqual(model.UrlSlug, campaign.UrlSlug); Assert.AreEqual(decimal.Parse(model.AmountString), campaign.GoalAmount); }