Ejemplo n.º 1
0
        //[AbpAuthorize(PermissionNames.AdminPage_Experience)]
        public virtual async Task <PagedResultDto <ExperienceDto> > GetAll(ExperienceFilterDto input)
        {
            var query = experienceRepository.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 <ExperienceDto>(
                       totalCount,
                       entities.Select(p => p.MapTo <ExperienceDto>())
                       .ToList()
                       ));
        }
Ejemplo n.º 2
0
        protected virtual IQueryable <Experience> ApplyPaging(IQueryable <Experience> query, ExperienceFilterDto 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);
        }
Ejemplo n.º 3
0
        protected virtual IQueryable <Experience> ApplySorting(IQueryable <Experience> query, ExperienceFilterDto 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);
        }