Example #1
0
        public static ProductListModel GetProducts(HttpSessionStateBase session, ProductListFilter filter)
        {
            using (var client = new LandauPortalWebAPI())
            {
                var prods = client.Catalogs.GetProductsAsync(filter.Brand,
                                                             filter.Gender,
                                                             filter.Collection,
                                                             filter.Category,
                                                             filter.IsNew,
                                                             filter.Fit,
                                                             filter.Size,
                                                             filter.Color,
                                                             filter.Sort,
                                                             filter.PageNumber,
                                                             filter.ViewAll ? 999999 : new int?(PAGE_SIZE));

                var prdList = new ProductListModel();
                prdList.Products = prods.Results.Select(p => new ProductModel()
                {
                    Code = p.ProductCode, Image = p.ImageUri, Name = p.ProductName, IsNew = p.IsNew ?? false, HasNewColors = p.HasNewColor ?? false
                }).ToList();
                prdList.Pagination.CurrentPage = prods.Pagination.CurrentPage ?? 0;
                prdList.Pagination.PageCount   = prods.Pagination.TotalPages ?? 0;
                prdList.Pagination.PageSize    = prods.Pagination.PageSize ?? 0;
                prdList.CatalogImage           = prods.CatalogImageUri;

                if (prods.TextSlider != null)
                {
                    prdList.SliderText.Title        = prods.TextSlider.Title;
                    prdList.SliderText.Descriptions = prods.TextSlider.Descriptions.OrderBy(o => o.SortOrder).Select(d => d.Description).ToList();
                }

                if (prods.Seo != null)
                {
                    prdList.Seo.PageDescription = prods.Seo.MetaDescription;
                    prdList.Seo.PageTitle       = prods.Seo.PageTitle;
                }

                if (prods.Filters != null)
                {
                    var ftls = prods.Filters.Select(f => f.ToLower()).ToList();
                    prdList.FilterDisplay.DisplaySizeFilter  = ftls.Contains("size");
                    prdList.FilterDisplay.DisplayColorFilter = ftls.Contains("color");
                    prdList.FilterDisplay.DisplaySort        = ftls.Contains("sort by");
                    prdList.FilterDisplay.DisplayFitFilter   = ftls.Contains("fit type");
                }

                var result = new ProductSearchResult()
                {
                    Filter = filter, Result = prdList
                };

                session[CATALOG_SEARCH_PRODS] = result;

                return(prdList);
            }
        }
Example #2
0
        public static ProductListModel Search(ProductListFilter filter)
        {
            using (var client = new LandauPortalWebAPI())
            {
                var prods   = client.Catalogs.Search(filter.Brand, filter.SearchKey, filter.ViewAll ? 1 : filter.PageNumber, filter.ViewAll ? int.MaxValue : PAGE_SIZE);
                var prdList = new ProductListModel();
                prdList.Products = prods.Results.Select(p => new ProductModel()
                {
                    Code = p.ProductCode, Image = p.ImageUri, Name = p.ProductName
                }).ToList();
                prdList.Pagination.CurrentPage = prods.Pagination.CurrentPage ?? 0;
                prdList.Pagination.PageCount   = prods.Pagination.TotalPages ?? 0;
                prdList.Pagination.PageSize    = prods.Pagination.PageSize ?? 0;
                prdList.Pagination.TotalCount  = prods.Pagination.TotalCount ?? 0;

                var result = new ProductSearchResult()
                {
                    Filter = filter, Result = prdList
                };

                return(prdList);
            }
        }