public ActionResult FilterAnnouncements(AnnouncementFilterModel filterModel) { DateTime trueEndDate = filterModel.EndDate.AddDays(1); using (var dbContext = GetDatabaseContext()) { IEnumerable <Announcement> announcements = dbContext.Announcements.Where(announcement => announcement.Created >= filterModel.StartDate && announcement.Created < trueEndDate); if (filterModel.AnnouncementImportance != 6) { announcements = announcements.Where(announcement => (announcement.AnnouncementImportance == filterModel.AnnouncementImportance)); } // Create the view models to be passed to the announcements view List <AnnouncementModel> models = announcements.OrderByDescending(announcement => announcement.Created).Select(announcement => { return(new AnnouncementModel { AnnouncementID = announcement.AnnouncementID, AnnouncementContent = announcement.AnnouncementContent, AnnouncementImportance = announcement.AnnouncementImportance, AnnouncementTitle = announcement.AnnouncementTitle, Created = announcement.Created, User = announcement.User }); }).ToList(); ViewBag.FilterModel = filterModel; return(View("Announcements", models)); } }
/// <summary> /// Get the filter form view with a populated model/ /// </summary> /// <returns>The view that contaisn the partial view model.;;</returns> public ActionResult AnnouncementFilterForm() { AnnouncementFilterModel filterModel = new AnnouncementFilterModel { StartDate = DateTime.Now.AddDays(-7), EndDate = DateTime.Now, AnnouncementImportance = 6 }; return(PartialView("_AnnouncementFilterForm", filterModel)); }
public void Announcement_ReturnsFilteredItems_OnDate() { Mock <AnnouncementController> controller = GetMockedAnnouncementController(); AnnouncementFilterModel filterModel = new AnnouncementFilterModel { AnnouncementImportance = 3, StartDate = DateTime.Now.AddDays(-2), EndDate = DateTime.Now.AddDays(2) }; var result = controller.Object.FilterAnnouncements(filterModel) as ViewResult; Assert.That(result.Model, Has.Count.EqualTo(1)); }
public void Announcement_ReturnsFilteredItems_OnImportance() { Mock <AnnouncementController> controller = GetMockedAnnouncementController(); AnnouncementFilterModel filterModel = new AnnouncementFilterModel { AnnouncementImportance = 1, StartDate = new DateTime(2000, 1, 1), EndDate = new DateTime(2050, 12, 31) }; var result = controller.Object.FilterAnnouncements(filterModel) as ViewResult; Assert.That(result.Model, Has.Count.EqualTo(1)); Assert.AreEqual(((List <AnnouncementModel>)result.Model).First().AnnouncementID, 3); }