public PagedItems <T> ListarPaginado(Expression <Func <T, bool> > predicate, PagedOptions pagedFilter) { if (string.IsNullOrEmpty(pagedFilter.Sort) && pagedFilter.SortManny == null) { var props = typeof(T) .GetProperties() .Where(prop => Attribute.IsDefined(prop, typeof(System.ComponentModel.DataAnnotations.KeyAttribute))); pagedFilter.Sort = props.First().Name; } PagedItems <T> paged = new PagedItems <T>(); var query = Context .Set <T>() .AsNoTracking() .Where(predicate) .AsQueryable(); paged.Total = query.Count(); if (!string.IsNullOrEmpty(pagedFilter.Sort)) { query = LinqExtension.OrderBy(query, pagedFilter.Sort, pagedFilter.Reverse); } else { if (pagedFilter.SortManny != null) { var list = pagedFilter.SortManny.ToList(); for (int i = 0; i < list.Count; i++) { if (i == 0) { query = LinqExtension.OrderBy(query, list[i].Sort, list[i].Reverse); } else { query = LinqExtension.ThenBy(query, list[i].Sort, list[i].Reverse); } } } } var skip = (pagedFilter.Page.Value * pagedFilter.Size.Value) - pagedFilter.Size.Value; query = query.Skip(skip); query = query.Take(pagedFilter.Size.Value); paged.Items = query.ToList(); return(paged); }
public Task <PagedResult <TEntity> > QueryPaged(PagedOptions pagedOptions) { if (pagedOptions == null) { throw new ArgumentNullException(nameof(pagedOptions)); } var query = this.Query(); if (!string.IsNullOrEmpty(pagedOptions.OrderBy)) { query = query.OrderBy(pagedOptions.OrderBy, pagedOptions.Direction); } return(query.ToPaged(pagedOptions.PageNumber, pagedOptions.PageSize, pagedOptions.IncludeTotalCount)); }
public Task <PagedResult <TEntity> > QueryPaged(PagedOptions pagedOptions) { if (pagedOptions == null) { throw new ArgumentNullException(nameof(pagedOptions)); } var find = this.Collection.Find(new BsonDocument()); if (!string.IsNullOrWhiteSpace(pagedOptions.OrderBy)) { find = find.SortBy(pagedOptions.OrderBy, (SortDirection)pagedOptions.Direction); } return(find.ToPagedAsync(pagedOptions.PageNumber, pagedOptions.PageSize, pagedOptions.IncludeTotalCount)); }
public PagedResult <TEntity> QueryPaged(PagedOptions pagedOptions, Expression <Func <TEntity, bool> > spec) { if (pagedOptions == null) { throw new ArgumentNullException(nameof(pagedOptions)); } if (spec == null) { throw new ArgumentNullException(nameof(spec)); } var query = this.Query().Where(spec); if (!string.IsNullOrEmpty(pagedOptions.OrderBy)) { query = query.OrderBy(pagedOptions.OrderBy, pagedOptions.Direction); } return(query.ToPaged(pagedOptions.PageNumber, pagedOptions.PageSize, pagedOptions.IncludeTotalCount)); }
public override GetAllUsersResponse OnGetAllUsersExecute(GetAllUsersRequest request) { GetAllUsersResponse response = new GetAllUsersResponse(); try { if (request != null) { var spec = new UsuariosAllSpec(request.Filter); if (request.PageSize > 0) { var pagedOptions = new PagedOptions() { Direction = request.SortDirection, OrderBy = request.PropertyName, PageNumber = request.PageNumber, PageSize = request.PageSize, IncludeTotalCount = true }; var repository = _usuarioRepository.QueryPaged(pagedOptions, spec); response.PageResult = new PagedResult <UsuarioDto>(repository.PageNumber, repository.PageSize, repository.TotalCount, _mapperService.Map <List <UsuarioDto> >(repository.DataList)); } else { var repository = _usuarioRepository.Query(spec, request.PropertyName, request.SortDirection); response.PageResult = new PagedResult <UsuarioDto>(0, 0, repository.Count, _mapperService.Map <List <UsuarioDto> >(repository)); } } else { var usuarios = _usuarioRepository.Query(null); response.PageResult = new PagedResult <UsuarioDto>(0, 0, usuarios.Count, _mapperService.Map <List <UsuarioDto> >(usuarios)); } } catch (Exception ex) { response.Exception = ex; } return(response); }
public ListStoriesQuery() { Paging = new PagedOptions <Story>(1, 10, s => s.Created, false); }