Example #1
0
        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());
 }