private static GetProductsByCategoryRequest GenerateProductSearchRequestFrom(JsonProductSearchRequest jsonRequest)
        {
            var request = new GetProductsByCategoryRequest();

            request.NumberOfResultsPerPage = 6;
            request.CategoryId             = jsonRequest.CategoryId;
            request.PageIndex = jsonRequest.PageIndex;
            request.SortBy    = jsonRequest.SortBy;

            foreach (var item in jsonRequest.RefinementGroups)
            {
                switch ((RefinementGroupings)item.GroupId)
                {
                case RefinementGroupings.brand:
                    request.BrandIds = item.SelectedRefinements ?? new int[0];
                    break;

                case RefinementGroupings.color:
                    request.ColorIds = item.SelectedRefinements ?? new int[0];
                    break;

                case RefinementGroupings.size:
                    request.SizeIds = item.SelectedRefinements ?? new int[0];
                    break;

                default:
                    break;
                }
            }

            return(request);
        }
示例#2
0
        private static GetProductsByCategoryRequest GenerateProductSearchRequestFrom(JsonProductSearchRequest jsonProductSearchRequest)
        {
            GetProductsByCategoryRequest productSearchRequest = new GetProductsByCategoryRequest();

            productSearchRequest.NumberOfResultsPerPage = ApplicationSettingsFactory.GetApplicationSettings().NumberOfResultsPerPage;
            productSearchRequest.Index      = jsonProductSearchRequest.Index;
            productSearchRequest.CategoryId = jsonProductSearchRequest.CategoryId;
            productSearchRequest.SortBy     = jsonProductSearchRequest.SortBy;

            List <RefinementGroup> refinementGroups = new List <RefinementGroup>();
            RefinementGroup        refinementGroup;

            foreach (JsonRefinementGroup jsonRefinementGroup in jsonProductSearchRequest.RefinementGroups)
            {
                switch ((RefinementGroupings)jsonRefinementGroup.GroupId)
                {
                case RefinementGroupings.brand:
                    productSearchRequest.BrandIds = jsonRefinementGroup.SelectedRefinements;
                    break;

                case RefinementGroupings.colour:
                    productSearchRequest.ColourIds = jsonRefinementGroup.SelectedRefinements;
                    break;

                case RefinementGroupings.size:
                    productSearchRequest.SizeIds = jsonRefinementGroup.SelectedRefinements;
                    break;

                default:
                    break;
                }
            }
            return(productSearchRequest);
        }
示例#3
0
        public JsonResult GetProductsByAjax(JsonProductSearchRequest jsonProductSearchRequest)
        {
            GetProductsByCategoryRequest  productSearchRequest = GenerateProductSearchRequestFrom(jsonProductSearchRequest);
            GetProductsByCategoryResponse response             = _productService.GetProductsByCategory(productSearchRequest);

            ProductSearchResultView productSearchResultView = GetProductSearchResultViewFrom(response);

            return(Json(productSearchResultView));
        }
        public ActionResult GetProducts(JsonProductSearchRequest jsonRequest)
        {
            var request = GenerateProductSearchRequestFrom(jsonRequest);

            var response = _productCatalogService.GetProductsByCategory(request);

            var result = GetProductResultViewFrom(response);

            return(Json(result));
        }