public IActionResult GetAll([FromQuery] int currentPage, [FromQuery] int itemsPerPage, [FromQuery] bool sortAscending, [FromQuery] string sortBy) { var filter = new ModelQueryFilter(currentPage, itemsPerPage, sortAscending, sortBy); return(new ObjectResult(_repository.Filter(filter))); }
public ModelQuery <Contract.OrganizationUser> Filter(long organizationId, ModelQueryFilter filter) { IQueryable <Models.OrganizationUser> dbOrganizationUsersQuery = dbContext.OrganizationUsers.Where(x => x.OrganizationId == organizationId); Contract.OrganizationUser[] organizationUsers = dbOrganizationUsersQuery.Include(x => x.User).Select(x => new { Id = x.Id, Name = x.User.Email, Level = x.Level, Status = x.Status }).Apply(filter).ToArray().Select(x => new Contract.OrganizationUser() { Id = x.Id, Name = x.Name, Level = x.Level, Status = x.Status }).ToArray(); return(new ModelQuery <Contract.OrganizationUser>() { List = organizationUsers, TotalItems = dbOrganizationUsersQuery.Count() }); }
/// <summary> /// Filter organizations /// </summary> /// <param name="filter">filter obj</param> /// <returns>Model query for organization view model</returns> public ModelQuery <OrganizationViewModel> Filter(ModelQueryFilter filter) { // get all if (filter == null) { return(new ModelQuery <OrganizationViewModel>() { List = dbContext.Organizations.Select(t => new OrganizationViewModel() { Id = t.Id, Name = t.Name, Website = t.Website, ParentOrganizationId = t.ParentId }), TotalItems = dbContext.Organizations.Count() }); } var query = dbContext.Organizations.Select(t => new OrganizationViewModel() { Id = t.Id, Name = t.Name, Website = t.Website, ParentOrganizationId = t.ParentId }).Skip(filter.CurrentPage * filter.ItemsPerPage) .Take(filter.ItemsPerPage) .Select(p => p); if (!string.IsNullOrEmpty(filter.SortBy)) { if (filter.SortAscending) { query = query.OrderBy(filter.SortBy); } else { query = query.OrderByDescending(filter.SortBy); } } var count = query.Count(); return(new ModelQuery <OrganizationViewModel>() { List = query.ToList(), TotalItems = count }); }
public ModelQuery <Sample> GetAll(ModelQueryFilter filter) { if (filter == null) // get all { return new ModelQuery <Sample>() { List = _items.Values, TotalItems = _items.Count } } ; var query = _items.Skip(filter.CurrentPage * filter.ItemsPerPage) .Take(filter.ItemsPerPage) .Select(p => p.Value); if (!string.IsNullOrEmpty(filter.SortBy)) { if (filter.SortAscending) { query = query.OrderBy(filter.SortBy); } else { query = query.OrderByDescending(filter.SortBy); } } var count = query.Count(); return(new ModelQuery <Sample>() { List = query.ToList(), TotalItems = count }); }
public IActionResult Get([FromRoute] long organizationId, [FromQuery] int currentPage, [FromQuery] int itemsPerPage, [FromQuery] bool sortAscending, [FromQuery] string sortBy) { ModelQueryFilter filter = new ModelQueryFilter(currentPage, itemsPerPage, sortAscending, sortBy); return(new ObjectResult(organizationUserRepository.Filter(organizationId, filter))); }