public SearchResponse(ProductSearchResult searchResult, SearchRequest request, HrefLookup hrefLookup, ICore core) : this() { _core = core; if (searchResult.Count > 0) { Filters = new ExtendedFilter(searchResult.Refinements, searchResult.SelectedRefinements, hrefLookup); Sorter = new ExtendedSorter(searchResult.SortingOptions, searchResult.SelectedSortingOption); var catName = hrefLookup.Forward.Get(ParsingHelper.GetHrefWithoutQueryString(request.Href)); var plpInfo = GetAdditionalPlpInfo(request, catName); foreach (var product in searchResult.Hits.Where(a => a.Price != Convert.ToDecimal(Config.Params.PriceToExclude)).ToList()) { Products.Add(new ProductListItem(product, GetExtraPLPInfo(plpInfo, product.ProductId), GetColorVariations(plpInfo, product.ProductId))); } Pager.PageSize = request.PageSize; Pager.CurrentPage = request.Page; Pager.RecordCount = searchResult.Count; Pager.TotalRecords = searchResult.Total; Pager.TotalPages = (int)Math.Ceiling((double)Pager.TotalRecords / Pager.PageSize); ProductIds = string.Join(",", Products.Select(x => x.ProductId)); Breadcrumbs = string.Join(" | ", Filters.Path.Select(x => x.Key.ToLowerInvariant())); } else { Breadcrumbs = "We're sorry, no products were found for your search"; } Term = searchResult.Query; Href = request.Href; }
public SearchResponse() { Filters = new ExtendedFilter(); Pager = new Pager(); Products = new List <ProductListItem>(); Sorter = new ExtendedSorter(); _errors = new List <SiteError>(); ProductRaw = new List <ProductRaw>(); }