public IHttpActionResult GetProducts(ProductsParametersModel parameters) { if (parameters.Limit < Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit) { return(Error(HttpStatusCode.BadRequest, "limit", "invalid limit parameter")); } if (parameters.Page < Configurations.DefaultPageValue) { return(Error(HttpStatusCode.BadRequest, "page", "invalid page parameter")); } IList <Product> allProducts = _productApiService.GetProducts(parameters.Ids, parameters.CreatedAtMin, parameters.CreatedAtMax, parameters.UpdatedAtMin, parameters.UpdatedAtMax, parameters.Limit, parameters.Page, parameters.SinceId, parameters.CategoryId, parameters.VendorName, parameters.PublishedStatus); IList <ProductDto> productsAsDtos = allProducts.Select(product => { return(_dtoHelper.PrepareProductDTO(product)); }).ToList(); var productsRootObject = new ProductsRootObjectDto() { Products = productsAsDtos }; var json = _jsonFieldsSerializer.Serialize(productsRootObject, parameters.Fields); return(new RawJsonActionResult(json)); }
public async Task <IActionResult> GetProducts(ProductsParametersModel parameters) { if (parameters.Limit < Constants.Configurations.MinLimit || parameters.Limit > Constants.Configurations.MaxLimit) { return(Error(HttpStatusCode.BadRequest, "limit", "invalid limit parameter")); } if (parameters.Page < Constants.Configurations.DefaultPageValue) { return(Error(HttpStatusCode.BadRequest, "page", "invalid page parameter")); } var allProducts = _productApiService.GetProducts(parameters.Ids, parameters.CreatedAtMin, parameters.CreatedAtMax, parameters.UpdatedAtMin, parameters.UpdatedAtMax, parameters.Limit, parameters.Page, parameters.SinceId, parameters.CategoryId, parameters.VendorName, parameters.PublishedStatus) .WhereAwait(async p => await StoreMappingService.AuthorizeAsync(p)); IList <ProductDto> productsAsDtos = await allProducts.SelectAwait(async product => await _dtoHelper.PrepareProductDTOAsync(product)).ToListAsync(); var productsRootObject = new ProductsRootObjectDto { Products = productsAsDtos }; var json = JsonFieldsSerializer.Serialize(productsRootObject, parameters.Fields); return(new RawJsonActionResult(json)); }
public IActionResult GetBestSellingProducts(ProductsParametersModel parameters) { if (!_catalogSettings.ShowBestsellersOnHomepage || _catalogSettings.NumberOfBestsellersOnHomepage == 0) { return(new RawJsonActionResult("{\"products\":[]}")); } //load report var report = _orderReportService.BestSellersReport( storeId: _storeContext.CurrentStore.Id, pageSize: _catalogSettings.NumberOfBestsellersOnHomepage) .ToList(); parameters.Ids = report.Select(x => x.ProductId).ToList(); return(GetProducts(parameters)); }
public IActionResult GetProducts(ProductsParametersModel parameters) { var consumerKey = Request.Headers.GetInstantCheckoutConsumerKey(); var consumerSecret = Request.Headers.GetInstantCheckoutConsumerSecret(); if (consumerKey == Guid.Empty || consumerSecret == Guid.Empty) { return(Unauthorized()); } var storeScope = _storeContext.ActiveStoreScopeConfiguration; var instantCheckoutSettings = _settingService.LoadSetting <InstantCheckoutSettings>(storeScope); if (consumerKey != instantCheckoutSettings.ConsumerKey && consumerSecret != instantCheckoutSettings.ConsumerSecret) { return(Unauthorized()); } if (parameters.Limit < Configurations.MIN_LIMIT || parameters.Limit > Configurations.MAX_LIMIT) { return(Error(HttpStatusCode.BadRequest, "limit", "invalid limit parameter")); } if (parameters.Page < Configurations.DEFAULT_PAGE_VALUE) { return(Error(HttpStatusCode.BadRequest, "page", "invalid page parameter")); } var allProducts = _productApiService.GetProducts(parameters.Ids, parameters.CreatedAtMin, parameters.CreatedAtMax, parameters.UpdatedAtMin, parameters.UpdatedAtMax, parameters.Limit, parameters.Page, parameters.SinceId, parameters.PublishedStatus) .Where(p => _storeMappingService.Authorize(p)); IList <ProductDto> productsAsDtos = allProducts.Select(product => _dtoHelper.PrepareProductDTO(product)).ToList(); var productsRootObject = new ProductsRootObjectDto() { Products = productsAsDtos }; var json = _jsonFieldsSerializer.Serialize(productsRootObject, parameters.Fields); return(new RawJsonActionResult(json)); }
public IActionResult GetProducts(ProductsParametersModel parameters) { if (parameters.Limit < Configurations.MinLimit || parameters.Limit > Configurations.MaxLimit) { return(Error(HttpStatusCode.BadRequest, "limit", "invalid limit parameter")); } if (parameters.Page < Configurations.DefaultPageValue) { return(Error(HttpStatusCode.BadRequest, "page", "invalid page parameter")); } var allProducts = _productApiService.GetProducts(out IList <SpecificationItemDto> alreadyFilteredItems, out IList <SpecificationItemDto> notFilteredItems, parameters.Ids, parameters.CreatedAtMin, parameters.CreatedAtMax, parameters.UpdatedAtMin, parameters.UpdatedAtMax, parameters.Limit, parameters.Page, parameters.SinceId, parameters.CategoryId, parameters.VendorName, parameters.PublishedStatus, parameters.AlreadyFilteredSpecOptionIds) .Where(p => _storeMappingService.Authorize(p)); IList <ProductDto> productsAsDtos = allProducts.Select(product => { return(_dtoHelper.PrepareProductDTO(product)); }).ToList(); var productsRootObject = new ProductsRootObjectDto() { Products = productsAsDtos, AlreadyFilteredItems = alreadyFilteredItems, NotFilteredItems = notFilteredItems, Page = parameters.Page, PageSize = parameters.Limit }; var json = _jsonFieldsSerializer.Serialize(productsRootObject, parameters.Fields); return(new RawJsonActionResult(json)); }
public IActionResult GetNewProducts(ProductsParametersModel parameters) { parameters.Ids = _productService.SearchProducts( markedAsNewOnly: true).Select(product => product.Id).ToList(); return(GetProducts(parameters)); }