public async Task <BaseViewModel <PagingResult <ProductCategoryViewModel> > > GetAllProductCategories(BasePagingRequestViewModel request) { var pageSize = request.PageSize; var pageIndex = request.PageIndex; var result = new BaseViewModel <PagingResult <ProductCategoryViewModel> >(); string filter = SearchHelper <ProductCategory> .GenerateStringExpression(request.Filter, Constants.DEAFAULT_DELETE_STATUS_EXPRESSION); Expression <Func <ProductCategory, bool> > FilterExpression = await LinqHelper <ProductCategory> .StringToExpression(filter); QueryArgs <ProductCategory> queryArgs = new QueryArgs <ProductCategory> { Offset = pageSize * (pageIndex - 1), Limit = pageSize, Filter = FilterExpression, Sort = request.SortBy, }; var data = _repository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit).ToList(); if (data == null || !data.Any()) { result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD); result.Code = MessageConstants.NO_RECORD; } else { var pageSizeReturn = pageSize; if (data.Count < pageSize) { pageSizeReturn = data.Count; } result.Data = new PagingResult <ProductCategoryViewModel> { Results = _mapper.Map <IEnumerable <ProductCategoryViewModel> >(data), PageIndex = pageIndex, PageSize = pageSizeReturn, TotalRecords = _repository.Count(queryArgs.Filter) }; } return(result); }
public async Task <int> Count() { return(await _repository.Count()); }