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)); }