Beispiel #1
0
        public IActionResult GetMinMaxPriceRange([FromBody] ProductFilterRequest request)
        {
            var response = new OperationResponse <ProductRange>();

            try
            {
                response.Data = _productService.GetMinMaxPriceRange(request.year, request.CategoryId, request.ParentSubCategoryId,
                                                                    request.SubCategoryId, request.ProductTypeId, request.BrandId);
            }
            catch (Exception exception)
            {
                response.State = ResponseState.Error;
                response.Messages.Add(exception.Message + " StackTrace==> " + exception.StackTrace);
                _logger.LogError(exception, "Error Getting GetMinMaxPriceRange==>" + exception.StackTrace, request);
            }
            return(new JsonResult(response));
        }
Beispiel #2
0
        public DbResponse <PagedResult <ProductListViewModel> > GetFlashDeals(ProductFilterRequest request)
        {
            try
            {
                var data = _db.Product.GetFlashDeals(request);
                if (data.Results == null)
                {
                    return(new DbResponse <PagedResult <ProductListViewModel> >(false, "No Data found"));
                }

                return(new DbResponse <PagedResult <ProductListViewModel> >(true, "Success", data));
            }
            catch (Exception e)
            {
                return(new DbResponse <PagedResult <ProductListViewModel> >(false, e.Message));
            }
        }
Beispiel #3
0
        public IActionResult GetFilteredProductList([FromBody] ProductFilterRequest request)
        {
            var response = new OperationResponse <ICollection>();

            try
            {
                response.Data = _productService.GetFilteredProductList(request.ProductName, request.year, request.CategoryId, request.ParentSubCategoryId,
                                                                       request.SubCategoryId, request.ProductTypeId, request.BrandId, request.PriceRangeMin, request.PriceRangeMax,
                                                                       request.SortBy, request.IsAsc, request.PageNumber, request.NoOfRecord);
            }
            catch (Exception exception)
            {
                response.State = ResponseState.Error;
                response.Messages.Add(exception.Message + " StackTrace==> " + exception.StackTrace);
                _logger.LogError(exception, "Error Getting GetProduct==>" + exception.StackTrace, request);
            }
            return(new JsonResult(response));
        }
Beispiel #4
0
        public DbResponse <PagedResult <ProductListViewModel> > GetCatalogWiseList(string slugUrl,
                                                                                   ProductFilterRequest request)
        {
            try
            {
                if (!_db.Catalog.IsExistSlugUrl(slugUrl))
                {
                    return(new DbResponse <PagedResult <ProductListViewModel> >(false, "Invalid Catalog"));
                }

                var catalogIds = _db.Catalog.CatalogIdsBySlugUrl(slugUrl);

                var data = _db.Product.GetCatalogWiseList(catalogIds, request);


                return(new DbResponse <PagedResult <ProductListViewModel> >(true, "Success", data));
            }
            catch (Exception e)
            {
                return(new DbResponse <PagedResult <ProductListViewModel> >(false, e.Message));
            }
        }
Beispiel #5
0
        public async Task <List <Product> > FindAsync(ProductFilterRequest filters, CancellationToken cancellationToken)
        {
            var includedInactive = filters.IncludedInactive ? "" : Status.Active.ToString();

            // Create a filter base a scan condition
            var opConfig = new DynamoDBOperationConfig {
                QueryFilter = new List <ScanCondition>()
            };

            if (!string.IsNullOrWhiteSpace(filters.Description))
            {
                opConfig.QueryFilter.Add(new ScanCondition(nameof(Product.Description), ScanOperator.Contains,
                                                           filters.Description));
            }

            if (filters.ProductType != ProductType.None)
            {
                opConfig.QueryFilter.Add(new ScanCondition(nameof(Product.ProductType), ScanOperator.Contains,
                                                           filters.ProductType));
            }


            if (!filters.IncludedInactive)
            {
                opConfig.QueryFilter.Add(new ScanCondition(nameof(Product.Status), ScanOperator.Equal, Status.Active));
            }


            var sortKey = new List <string>();

            if (filters.ValidityStart.HasValue)
            {
                sortKey.Add(filters.ValidityStart.Value.ToShortDateString());
            }

            if (filters.ValidityEnd.HasValue)
            {
                sortKey.Add(filters.ValidityEnd.Value.ToShortDateString());
            }


            // When partition key exists !
            if (!string.IsNullOrWhiteSpace(filters.Manufacturer))
            {
                // query filters use in a filter by composite key
                var queryFilter = new QueryFilter();

                queryFilter.AddCondition(nameof(Product.PartitionKey), QueryOperator.Equal, filters.Manufacturer);

                if (sortKey.Any())
                {
                    queryFilter.AddCondition(nameof(Product.SortKey), QueryOperator.BeginsWith,
                                             string.Join("#", sortKey));
                }

                // Use scan condition and query filter (filter by primary key)
                return(await Context.FromQueryAsync <Product>(new QueryOperationConfig
                {
                    Filter = queryFilter,
                    Limit = filters.Take
                }, opConfig).GetRemainingAsync(cancellationToken));
            }

            // Table scan !! scan condition shouldn't contain a primary key
            var scanFilter = new ScanFilter();

            scanFilter.AddCondition(nameof(Product.SortKey), ScanOperator.BeginsWith, string.Join("#", sortKey));

            return(await Context.FromScanAsync <Product>(new ScanOperationConfig
            {
                Limit = 10
            }, opConfig).GetRemainingAsync(cancellationToken));
        }
        public IActionResult GetProductsOnDemand(ProductFilterRequest filter)
        {
            var model = _catalog.GetCatalogWiseList(filter.SlugUrl, filter);

            return(Json(model));
        }
Beispiel #7
0
 public async Task <ActionResult <object> > GetAsync([FromQuery] ProductFilterRequest filters)
 {
     return(await _repository.FindAsync(filters, CancellationToken.None));
 }
        //Get more to Love
        public IActionResult GetMoreToLove(ProductFilterRequest filter)
        {
            var response = _product.GetMoreToLove(filter);

            return(Json(response));
        }
        //get TopRated
        public IActionResult GetTopRated(ProductFilterRequest filter)
        {
            var response = _product.GetTopRated(filter);

            return(Json(response));
        }
Beispiel #10
0
        //get FlashDeals
        public IActionResult GetFlashDeals(ProductFilterRequest filter)
        {
            var response = _product.GetFlashDeals(filter);

            return(Json(response));
        }