public async Task <ApiResourceEditModelCollection> Query(ApiResourceQuery query) { if (query.Id != null) { var client = await Get(query.Id.Value); if (client == null) { return(new ApiResourceEditModelCollection(query, 0, Enumerable.Empty <ApiResourceEditModel>())); } return(new ApiResourceEditModelCollection(query, 1, new ApiResourceEditModel[] { client })); } IQueryable <Scope> resources = configDb.Scopes; if (!String.IsNullOrEmpty(query.Name)) { resources = resources.Where(i => EF.Functions.Like(i.Name, $"%{query.Name}%")); } int total = await resources.CountAsync(); resources = resources.OrderBy(i => i.Name); var results = resources.Skip(query.SkipTo(total)).Take(query.Limit); var items = (await results.Select(s => mapper.Map <ApiResourceEditModel>(s)).ToListAsync()); return(new ApiResourceEditModelCollection(query, total, items)); }
public Task <ApiResourceEditModelCollection> Get([FromQuery] ApiResourceQuery query) { return(this.apiResourceRepository.Query(query)); }