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); } }
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); } }