Esempio n. 1
0
        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));
        }