Beispiel #1
0
        public IQueryable <Product> GetProductsList(GetProductParams param)
        {
            const string asce = "priceAsc";
            const string desc = "priceDesc";

            var p = _context.Products.Include(x => x.ProductBrand).Include(x => x.ProductType).AsQueryable();

            p = p.OrderBy(x => x.Name);
            if (param.BrandId != null)
            {
                p = p.Where(x => x.ProductBrandId == param.BrandId);
            }
            if (param.TypeId != null)
            {
                p = p.Where(x => x.ProductTypeId == param.TypeId);
            }
            if (string.IsNullOrEmpty(param.Search) == false)
            {
                p = p.Where(x => x.Name.ToLower().Contains(param.Search.ToLower()));
            }
            if (string.IsNullOrEmpty(param.Sort) == false)
            {
                switch (param.Sort)
                {
                case asce:
                    p = p.OrderBy(x => x.Price);
                    break;

                case desc:
                    p = p.OrderByDescending(x => x.Price);
                    break;

                default:
                    p = p.OrderBy(x => x.Name);
                    break;
                }
            }

            return(p);
        }
        public async Task <ActionResult <Pagination <ReturnProductDTO> > > GetProduct([FromQuery] GetProductParams getProductParams)
        {
            var listProducts = await _productRepo.GetProducts(getProductParams);

            var returnList = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ReturnProductDTO> > (listProducts);

            Response.AddPagination(listProducts.CurrentPage, listProducts.PageSize, listProducts.TotalCount, listProducts.TotalPages);
            return(Ok(returnList));
        }
Beispiel #3
0
        public async Task <PageList <Product> > GetProducts(GetProductParams p)
        {
            var list = GetProductsList(p);

            return(await PageList <Product> .CreateAsync(list, p.PageIndex, p.PageSize));
        }
Beispiel #4
0
        public async Task <Product> GetProductById(Guid Id)
        {
            var p = new GetProductParams();

            return(await GetProductsList(p).FirstOrDefaultAsync(x => x.Id == Id));
        }