Пример #1
0
        //[AbpAuthorize(PermissionNames.AdminPage_JobCategory)]
        public virtual async Task <PagedResultDto <JobCategoryDto> > GetAll(JobCategoryFilterDto input)
        {
            var query = jobCategoryRepository.GetAll()
                        .WhereIf(input.Id != null, p => p.Id == input.Id)
                        .WhereIf(input.Name != null, p => p.Name == input.Name);

            var totalCount = await query.CountAsync();

            query = ApplySorting(query, input);
            query = ApplyPaging(query, input);

            var entities = await query.ToListAsync();

            return(new PagedResultDto <JobCategoryDto>(
                       totalCount,
                       entities.Select(p => p.MapTo <JobCategoryDto>())
                       .ToList()
                       ));
        }
Пример #2
0
        protected virtual IQueryable <JobCategory> ApplyPaging(IQueryable <JobCategory> query, JobCategoryFilterDto 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);
        }
Пример #3
0
        protected virtual IQueryable <JobCategory> ApplySorting(IQueryable <JobCategory> query, JobCategoryFilterDto 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);
        }