/// <summary> /// GetProductByCategory /// </summary> /// <param name="request">GetProductByCategoryRequest</param> /// <returns>GetProductAllResponse</returns> public async Task <GetProductAllResponse> GetProductByCategory(GetProductByCategoryRequest request) { var response = new GetProductAllResponse(); try { var param = new GetProductByCategoryParameter() { IDCategory = request.IDCategory, StartPage = request.StartPage }; var result = _dataAccess.GetListProductByCategory(param); if (result != null) { response.ListProductAll = MapList <GET_PRODUCT_BY_CATEGORY_Result, GetProductAllDto>(result.ToList()); response.Success = true; } } catch (Exception ex) { response.Success = false; } return(await Task.FromResult(response)); }
public static Query CreateQueryFor(GetProductByCategoryRequest request) { Query productQuery = new Query(); Query weightQuery = new Query(); Query manufacturerQuery = new Query(); productQuery.Add(Criterion.Create <Catalog>(p => p.RetailerId, request.RetailerId, CriteriaOperator.Equal)); productQuery.Add(Criterion.Create <Catalog>(p => p.Product.Category.Id, request.CategoryId, CriteriaOperator.Equal, ConditionOperator.And)); weightQuery.QueryOperator = QueryOperator.And; foreach (int id in request.WeightIds) { weightQuery.Add(Criterion.Create <Catalog>(p => p.Product.Weight.Id, id, CriteriaOperator.Equal, ConditionOperator.Or)); } manufacturerQuery.QueryOperator = QueryOperator.And; foreach (int id in request.ManufacturerIds) { manufacturerQuery.Add(Criterion.Create <Catalog>(p => p.Product.Manufacturer.Id, id, CriteriaOperator.Equal, ConditionOperator.Or)); } if (request.WeightIds.Count() > 0) { productQuery.AddSubQuery(weightQuery); } if (request.ManufacturerIds.Count() > 0) { productQuery.AddSubQuery(manufacturerQuery); } return(productQuery); }
public ActionResult GetProductsByCategory(int categoryId) { GetProductByCategoryRequest request = GenerateInitialProductSearchRequestFrom(categoryId); GetProductByCategoryResponse response = _productCatalogService.GetProductsByCategory(request); ProductSearchResultView productSearchResultView = GetProductSearchResultViewFrom(response); return(View("ProductSearchResultView", productSearchResultView)); }
public GetProductByCategoryResponse GetProductsByCategory(GetProductByCategoryRequest request) { GetProductByCategoryResponse response; Query productQuery = ProductSearchRequestQueryGenerator.CreateQueryFor(request); IEnumerable <Catalog> productMatchingRefinement = GetAllProductsMatchingQueryAndSort(request, productQuery); response = productMatchingRefinement.CreateProductSearchResultFrom(request); response.SelectedCategoryName = _categoryRepository.FindBy(request.CategoryId).Name; return(response); }
private static GetProductByCategoryRequest GenerateInitialProductSearchRequestFrom (int categoryId) { GetProductByCategoryRequest productSearchRequest = new GetProductByCategoryRequest(); productSearchRequest.NumberOfResultsPerPage = 6; productSearchRequest.CategoryId = categoryId; productSearchRequest.Index = 1; productSearchRequest.SortBy = ProductsSortBy.PriceHighToLow; //TODO:: productSearchRequest.RetailerId = 1; return(productSearchRequest); }
private IEnumerable <Catalog> GetAllProductsMatchingQueryAndSort( GetProductByCategoryRequest request, Query productQuery) { IEnumerable <Catalog> productsMatchingRefinement = _catalogRepository.FindBy(productQuery); switch (request.SortBy) { case ProductsSortBy.PriceLowToHigh: productsMatchingRefinement = productsMatchingRefinement .OrderBy(p => p.SellingPrice); break; case ProductsSortBy.PriceHighToLow: productsMatchingRefinement = productsMatchingRefinement .OrderByDescending(p => p.SellingPrice); break; } return(productsMatchingRefinement); }
public static GetProductByCategoryResponse CreateProductSearchResultFrom( this IEnumerable <Catalog> productMatchingRefinements, GetProductByCategoryRequest request) { GetProductByCategoryResponse productSearchResultView = new GetProductByCategoryResponse(); IEnumerable <Product> productsFound = productMatchingRefinements.Select(p => p.Product).Distinct(); productSearchResultView.SelectedCategory = request.CategoryId; productSearchResultView.NumberOfProductsFound = productsFound.Count(); productSearchResultView.TotalNumberOfPages = NoOfResultPagesGiven( request.NumberOfResultsPerPage, productSearchResultView.NumberOfProductsFound); productSearchResultView.RefinementGroups = GenerateAvailableProductRefinementsFrom(productsFound); productSearchResultView.Products = CropProductListToSatisfyGivenIndex( request.Index, request.NumberOfResultsPerPage, productMatchingRefinements); return(productSearchResultView); }
public JsonResult GetProductsByAjax(GetProductByCategoryRequest request) { GetProductByCategoryResponse response = new GetProductByCategoryResponse(); return(Json(response, JsonRequestBehavior.AllowGet)); }
public IHttpActionResult GetProductByCategory(GetProductByCategoryRequest RequestData) { var result = _businessLogic.GetProductByCategory(RequestData); return(new ActionResult <GetProductAllResponse>(result.Result, Request)); }