Exemple #1
0
        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));
 }