NerdDinner.Controllers.DinnersController.Index C# (CSharp) Method

Index() public method

public Index ( string q, int page ) : System.Web.Mvc.ActionResult
q string
page int
return System.Web.Mvc.ActionResult
        public ActionResult Index(string q, int? page)
        {
            IQueryable<Dinner> dinners = null;

            //Searching?
            if (!string.IsNullOrWhiteSpace(q))
                dinners = dinnerRepository.FindDinnersByText(q).OrderBy(d => d.EventDate);
            else
                dinners = dinnerRepository.FindUpcomingDinners();

            int pageIndex = (page ?? 1) - 1;
            return View(dinners.ToPagedList(pageIndex, PageSize));
        }

Usage Example

        public void IndexAction_With_Search_Term_Should_Filter()
        {
            // Arrange
            string searchterm = "Dinner we will be searching for (spaghetti)";

            var testData = FakeDinnerData.CreateTestDinners();
            var dinner = FakeDinnerData.CreateDinner();
            dinner.Title = searchterm;
            testData.Add(dinner);
            var repository = new FakeDinnerRepository(testData);
            var nerdIdentity = FakeIdentity.CreateIdentity("SomeUser");

            var controller = new DinnersController(repository, nerdIdentity);

            // Act
            // Get first page
            ViewResult result = (ViewResult)controller.Index("etti", null);
            PagedList<Dinner> list = result.ViewData.Model as PagedList<Dinner>;

            // Assert
            Assert.AreEqual(searchterm, list.First().Title);
        }
All Usage Examples Of NerdDinner.Controllers.DinnersController::Index