From 272781df41bf050648074a09e6aa2ab38f8c76bd Mon Sep 17 00:00:00 2001 From: dsanz Date: Mon, 27 Feb 2017 19:44:30 +0100 Subject: [PATCH] Add filter logic for the catalog items --- .../eShopWeb/Controllers/CatalogController.cs | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Web/WebMonolithic/eShopWeb/Controllers/CatalogController.cs b/src/Web/WebMonolithic/eShopWeb/Controllers/CatalogController.cs index 583eaabed..50fe9b481 100644 --- a/src/Web/WebMonolithic/eShopWeb/Controllers/CatalogController.cs +++ b/src/Web/WebMonolithic/eShopWeb/Controllers/CatalogController.cs @@ -27,13 +27,12 @@ namespace eShopWeb.Controllers // GET: // public IActionResult Index(int? BrandFilterApplied, int? TypesFilterApplied, int? page) { - var itemsPage = 10; - //var catalog = await _catalogSvc.GetCatalogItems(page ?? 0, itemsPage, BrandFilterApplied, TypesFilterApplied); - - var catalog = new List(); + var itemsPage = 10; + var catalog = this.GetCatalogItems(page ?? 0, itemsPage, BrandFilterApplied, TypesFilterApplied); + var vm = new IndexViewModel() { - CatalogItems = GetPreconfiguredItems(), + CatalogItems = catalog, Brands = GetPreconfiguredCatalogBrands(), Types = GetPreconfiguredCatalogTypes(), BrandFilterApplied = BrandFilterApplied ?? 0, @@ -65,17 +64,26 @@ namespace eShopWeb.Controllers } + private IList GetCatalogItems(int page, int itemsPage, int? brandFilterApplied, int? typesFilterApplied) + { + return GetPreconfiguredItems() + .Where(item => brandFilterApplied == null || item.CatalogBrandId == brandFilterApplied) + .Where(item => typesFilterApplied == null || item.CatalogTypeId == typesFilterApplied) + .Skip(page * itemsPage) + .Take(itemsPage) + .ToList(); + } static IEnumerable GetPreconfiguredCatalogBrands() { return new List() { new SelectListItem() { Value = null, Text="All", Selected= true}, - new SelectListItem() { Value = null, Text = "Azure", Selected= true}, - new SelectListItem() { Value = null, Text = ".NET", Selected= true }, - new SelectListItem() { Value = null, Text = "Visual Studio", Selected= true }, - new SelectListItem() { Value = null, Text = "SQL Server", Selected= true }, - new SelectListItem() { Value = null, Text = "Other", Selected= true } + new SelectListItem() { Value = "1", Text = "Azure", Selected= false}, + new SelectListItem() { Value = "2", Text = ".NET", Selected= false }, + new SelectListItem() { Value = "3", Text = "Visual Studio", Selected= false }, + new SelectListItem() { Value = "4", Text = "SQL Server", Selected= false }, + new SelectListItem() { Value = "5", Text = "Other", Selected= false } }; } @@ -84,14 +92,14 @@ namespace eShopWeb.Controllers return new List() { new SelectListItem() { Value = null, Text="All", Selected= true}, - new SelectListItem() { Value = null, Text = "Mug", Selected= true }, - new SelectListItem() { Value = null, Text = "T-Shirt", Selected= true }, - new SelectListItem() { Value = null, Text = "Sheet", Selected= true }, - new SelectListItem() { Value = null, Text = "USB Memory Stick", Selected= true } + new SelectListItem() { Value = "1", Text = "Mug", Selected= false }, + new SelectListItem() { Value = "2", Text = "T-Shirt", Selected= false }, + new SelectListItem() { Value = "3", Text = "Sheet", Selected= false }, + new SelectListItem() { Value = "4", Text = "USB Memory Stick", Selected= false } }; } - static IEnumerable GetPreconfiguredItems() + static IList GetPreconfiguredItems() { return new List() {