public ActionResult Index(ProductListViewModel model) { var query = _db.Products.AsQueryable(); if (!string.IsNullOrWhiteSpace(model.SearchParameter.ProductName)) { query = query.Where( x => x.ProductName.Contains(model.SearchParameter.ProductName)); } if (!string.IsNullOrWhiteSpace(model.SearchParameter.QuantityPerUnit)) { query = query.Where( x => x.QuantityPerUnit.Contains(model.SearchParameter.QuantityPerUnit)); } int supplierId; if (!string.IsNullOrWhiteSpace(model.SearchParameter.Supplier) && int.TryParse(model.SearchParameter.Supplier, out supplierId)) { query = query.Where(x => x.SupplierID == supplierId); } int categoryId; if (!string.IsNullOrWhiteSpace(model.SearchParameter.Category) && int.TryParse(model.SearchParameter.Category, out categoryId)) { query = query.Where(x => x.CategoryID == categoryId); } query = query.OrderBy(x => x.ProductID); int pageIndex = model.PageIndex < 1 ? 1 : model.PageIndex; var result = new ProductListViewModel { SearchParameter = model.SearchParameter, PageIndex = model.PageIndex < 1 ? 1 : model.PageIndex, CategoryItems = new SelectList( items: this.Categories, dataValueField: "CategoryID", dataTextField: "CategoryName", selectedValue: model.SearchParameter.Category), Suppliers = new SelectList( items: this.Suppliers, dataValueField: "SupplierID", dataTextField: "CompanyName", selectedValue: model.SearchParameter.Supplier), Products = query.ToPagedList(pageIndex, PageSize) }; return View(result); }
public ActionResult Index(int page = 1) { var query = _db.Products.OrderBy(x => x.ProductID); int pageIndex = page < 1 ? 1 : page; var model = new ProductListViewModel { SearchParameter = new ProductSearchModel(), PageIndex = pageIndex, CategoryItems = new SelectList(this.Categories, "CategoryID", "CategoryName"), Suppliers = new SelectList(this.Suppliers, "SupplierID", "CompanyName"), Products = query.ToPagedList(pageIndex, PageSize) }; return View(model); }