示例#1
0
        public async Task <PaginateResultBase <PostViewModel> > GetPaginateAsync(PaginateFilterBase filter)
        {
            var query = await _repository.GetQueryableByCriteria(x => !x.Deleted);

            if (!string.IsNullOrEmpty(filter.Search))
            {
                filter.Search = filter.Search.ToLower();
                query         = query.Where(x => x.Title.ToLower().Contains(filter.Search) ||
                                            x.SubTitle.ToLower().Contains(filter.Search) ||
                                            x.User.FirstName.ToLower().Contains(filter.Search) ||
                                            x.User.LastName.ToLower().Contains(filter.Search));
            }

            var total = query.Count();

            query = query.OrderByDescending(x => x.Title);

            if (int.TryParse(filter.Skip, out int skip))
            {
                query = query.Skip(skip);
            }

            if (int.TryParse(filter.Take, out int take))
            {
                query = query.Take(take);
            }

            var list = _mapper.Map <List <PostViewModel> >(query.ToList());

            return(new PaginateResultBase <PostViewModel>()
            {
                Results = list, Total = total
            });
        }
示例#2
0
 public Task <PaginateResultBase <LessonViewModel> > GetPaginateAsync(PaginateFilterBase filter)
 {
     throw new NotImplementedException();
 }