public IActionResult AccessoryCategories(int groupId) { var iCategoryService = EngineContext.Current.Resolve <ICategoryService>(); AccessoryPageCategoryAccessoriesModel accessoryCategoryBlocks = new AccessoryPageCategoryAccessoriesModel(); List <Accessory> accessoryList = new List <Accessory>(); accessoryList = Accessory.GetAllCrossSellAccessories(groupId); //accessory categories that relate to selected product var accessoriesByDisplayOrderList = accessoryList.OrderBy(x => x.displayOrder).ToList(); if (accessoryList.Count > 0) { foreach (var accessory in accessoriesByDisplayOrderList) { decimal price = 0; IPagedList <ProductCategory> productCategoryList = iCategoryService.GetProductCategoriesByCategoryId(accessory.id); var productsInOrder = productCategoryList.Where(y => y.Product.Price > 0).OrderBy(x => x.Product.Price).ToList(); for (int p = 0; p < productsInOrder.Count; p++) { if (productsInOrder[p].Product.Price > 0) { price = productsInOrder[p].Product.Price; break; } } //price = 0; // for testing log if (price != 0) { AccessoryPageBoxModel accessoryBox = new AccessoryPageBoxModel(); accessoryBox.name = accessory.Name; accessoryBox.mainPicturePath = accessory.mainPicturePath; accessoryBox.price = price; accessoryBox.isFeatured = accessory.isFeatured; accessoryBox.description = accessory.Description; accessoryBox.featuredProductId = accessory.featuredProductId; accessoryBox.categoryPageLink = "http://" + _httpContextAccessor.HttpContext.Request.Host + "/" + accessory.SeName; accessoryBox.displayOrder = accessory.displayOrder; accessoryCategoryBlocks.accessoryBoxes.Add(accessoryBox); } else { //log error if no pricing is found Exception ex = new Exception("Accessory Failed To Load. Category Id: " + accessory.id + ". All Products in category are missing pricing"); base.LogException(ex); } } } return(View("AccessoryCategoryAccessories", accessoryCategoryBlocks)); }