Esempio n. 1
0
        private IList <ProductViewModel> MapProductsInCategories(Category category, out int totalProducts)
        {
            var page     = Request.QueryString["pg"] ?? "1";
            var pageSize = Request.QueryString["size"] ?? "12";
            var skip     = (Int32.Parse(pageSize) * Int32.Parse(page) - Int32.Parse(pageSize));

            IList <Facet> facetsForQuerying  = System.Web.HttpContext.Current.Request.QueryString.ToFacets();
            var           productsInCategory = new List <ProductViewModel>();


            var subCategories = CatalogLibrary.GetCategories(category.Categories);
            var products      =
                CatalogLibrary.GetProducts(category.Categories.Append(category.Guid).ToList(),
                                           facetsForQuerying.ToFacetDictionary());

            foreach (var subCategory in subCategories)
            {
                var productsInSubCategory = products.Where(p => p.Categories.Contains(subCategory.Guid));
                productsInCategory.AddRange(MapProducts(productsInSubCategory.ToList()));
            }

            productsInCategory.AddRange(MapProducts(products.Where(p => p.Categories.Contains(category.Guid))
                                                    .ToList()));

            totalProducts      = productsInCategory.Count;
            productsInCategory = productsInCategory.Skip(skip).Take(Int32.Parse(pageSize)).ToList();

            return(productsInCategory);
        }
        internal static string GetCategoryPath(Ucommerce.Search.Models.Category category)
        {
            var catalogLibrary = Ucommerce.Infrastructure.ObjectFactory.Instance.Resolve <ICatalogLibrary>();

            var catNames = new List <string>();
            var cat      = category;

            while (cat != null)
            {
                catNames.Add(cat.Name);
                if (cat.ParentCategory.HasValue)
                {
                    cat = catalogLibrary.GetCategories(new List <Guid> {
                        cat.ParentCategory.Value
                    }).FirstOrDefault();
                }
                else
                {
                    cat = null;
                }
            }

            catNames.Reverse();
            var catUrl = String.Join("/", catNames.ToArray());

            return(catUrl);
        }
        private IList <ProductViewModel> MapProductsInCategories(Category category)
        {
            IList <Facet> facetsForQuerying  = System.Web.HttpContext.Current.Request.QueryString.ToFacets();
            var           productsInCategory = new List <ProductViewModel>();

            var subCategories = CatalogLibrary.GetCategories(category.Categories);
            var products      =
                CatalogLibrary.GetProducts(category.Categories.Append(category.Guid).ToList(),
                                           facetsForQuerying.ToFacetDictionary());

            foreach (var subCategory in subCategories)
            {
                var productsInSubCategory = products.Where(p => p.Categories.Contains(subCategory.Guid));
                productsInCategory.AddRange(MapProducts(productsInSubCategory.ToList()));
            }

            productsInCategory.AddRange(MapProducts(products.Where(p => p.Categories.Contains(category.Guid))
                                                    .ToList()));

            return(productsInCategory);
        }