//api/IndividualNominationsCatalog/nominations/v-tefagb public async Task <IActionResult> GetNominationByAlias(string alias, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { if (alias == null) { return(BadRequest()); } var totalItems = await _individualNominationCatalogContext.Nominations .Where(c => c.Alias.StartsWith(alias)).LongCountAsync(); var itemsOnPage = await _individualNominationCatalogContext.Nominations .Where(c => c.Alias.StartsWith(alias)) .OrderBy(c => c.Alias) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); var model = new PaginatedNominationsViewModel <Nomination> (pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
// api/IndividualNominationsCatalog/Nominations public async Task <IActionResult> Nominations( [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { var totalItems = await _individualNominationCatalogContext.Nominations .LongCountAsync(); var itemsOnPage = await _individualNominationCatalogContext.Nominations .OrderBy(c => c.Alias) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); var model = new PaginatedNominationsViewModel <Nomination> (pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }
public async Task <IActionResult> Nominations(string alias, int?awardcategoryId, int?locationId, int?suborgId, [FromQuery] int pageSize = 6, [FromQuery] int pageIndex = 0) { var root = (IQueryable <Nomination>)_individualNominationCatalogContext.Nominations; //filter for alias if (alias != null) { root = root.Where(c => c.Alias == alias); } //then for award category if (awardcategoryId.HasValue) { root = root.Where(c => c.AwardCategoryId == awardcategoryId); } //then location if (locationId.HasValue) { root = root.Where(c => c.LocationId == locationId); } //then for sub org if (suborgId.HasValue) { root = root.Where(c => c.SubOrgId == suborgId); } //put in totalItems variable var totalItems = await root .LongCountAsync(); //sort and paginate var itemsOnPage = await root .OrderBy(c => c.Alias) .Skip(pageSize * pageIndex) .Take(pageSize) .ToListAsync(); //pass in paginated view model //return model in json format var model = new PaginatedNominationsViewModel <Nomination>(pageIndex, pageSize, totalItems, itemsOnPage); return(Ok(model)); }