Ejemplo n.º 1
0
        public async Task <PageDataContainer <BrandDto> > GetAllBrands(BrandFilterArguments filterArguments,
                                                                       PageArguments pageArguments, SortingArguments sortingArguments)
        {
            PageDataContainer <BrandDto> pagedBrands = await _brandRepo.GetPagedBrands(filterArguments, sortingArguments, pageArguments);

            if (pagedBrands.PageData.Count > 0)
            {
                return(pagedBrands);
            }

            return(null);
        }
        public async Task <IActionResult> Get([FromQuery] BrandFilterArguments filterArgs,
                                              [FromQuery] PageArguments pageArgs, [FromQuery] SortingArguments sortingArgs)
        {
            PageDataContainer <BrandDto> pagedBrandDtos = await _brandService.GetAllBrands(filterArgs, pageArgs, sortingArgs);

            if (pagedBrandDtos == null)
            {
                return(NoContent());
            }

            PageDataContainer <BrandWebModel> pagedBrandModels = _mapper.Map <PageDataContainer <BrandWebModel> >(pagedBrandDtos);

            return(Ok(pagedBrandModels));
        }
        public async Task <PageDataContainer <BrandDto> > GetPagedBrands(BrandFilterArguments filterOptions, SortingArguments sortingArguments, PageArguments pageArguments)
        {
            var filters = new List <Expression <Func <Brand, bool> > >()
            {
                brand => brand.Title.Contains(filterOptions.Title ?? ""),
            };

            var includes = new string[] { "BrandCategories.Category" };

            var orderParameters = new List <OrderParams <Brand> >()
            {
                new OrderParams <Brand> {
                    OrderBy    = (x) => x.Title,
                    Descending = (sortingArguments.Direction == "desc")
                }
            };

            IOrderedQueryable <Brand> query       = GetAllForPaging(includes, filters, orderParameters);
            PageDataContainer <Brand> pagedBrands = await query.GetPageAsync(pageArguments);

            return(_mapper.Map <PageDataContainer <BrandDto> >(pagedBrands));
        }