//[AbpAuthorize(PermissionNames.AdminPage_Knowledge)] public virtual async Task <PagedResultDto <KnowledgeDto> > GetAll(KnowledgeFilterDto input) { var query = knowledgeRepository.GetAll() .WhereIf(input.Id != null, p => p.Id == input.Id); var totalCount = await query.CountAsync(); query = ApplySorting(query, input); query = ApplyPaging(query, input); var entities = await query.ToListAsync(); return(new PagedResultDto <KnowledgeDto>( totalCount, entities.Select(p => p.MapTo <KnowledgeDto>()) .ToList() )); }
protected virtual IQueryable <Knowledge> ApplyPaging(IQueryable <Knowledge> query, KnowledgeFilterDto input) { var pagedInput = input as IPagedResultRequest; if (pagedInput != null) { return(query.PageBy(pagedInput)); } var limitedInput = input as ILimitedResultRequest; if (limitedInput != null) { return(query.Take(limitedInput.MaxResultCount)); } return(query); }
protected virtual IQueryable <Knowledge> ApplySorting(IQueryable <Knowledge> query, KnowledgeFilterDto input) { var sortInput = input as ISortedResultRequest; if (sortInput != null) { if (sortInput.Sorting.IsNotNullOrEmpty()) { return(query.OrderBy(sortInput.Sorting)); } } if (input is ILimitedResultRequest) { return(query.OrderByDescending(e => e.Id)); } return(query); }