Пример #1
0
        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;
        }
Пример #2
0
 public SearchResponse()
 {
     Filters    = new ExtendedFilter();
     Pager      = new Pager();
     Products   = new List <ProductListItem>();
     Sorter     = new ExtendedSorter();
     _errors    = new List <SiteError>();
     ProductRaw = new List <ProductRaw>();
 }