Esempio n. 1
0
        public async Task <ListResponse <CatalogsResponse> > RunAsync(CatalogsFilter filter, ListOptions options)
        {
            IQueryable <CatalogsResponse> query = _context.Catalogs.Include("Catalogs")
                                                  .ProjectTo <CatalogsResponse>();

            query = ApplyFilter(query, filter);
            int totalCount = await query.CountAsync();

            if (options.Sort == null)
            {
                options.Sort = "Id";
            }

            query = options.ApplySort(query);
            query = options.ApplyPaging(query);
            return(new ListResponse <CatalogsResponse>
            {
                Items = await query.ToListAsync(),
                Page = options.Page,
                PageSize = options.PageSize ?? -1,
                Sort = options.Sort ?? "-Id",
                TotalItemsCount = totalCount
            });
        }
Esempio n. 2
0
        [ProducesResponseType(200, Type = typeof(ListResponse <CatalogsResponse>))]//было userresponce
        public async Task <IActionResult> GetCatalogsListAsync(CatalogsFilter catalogofcatalogs, ListOptions options, [FromServices] ICatalogsListQuery query)
        {
            var response = await query.RunAsync(catalogofcatalogs, options);     // запрос к базе

            return(Ok(response));
        }
Esempio n. 3
0
        private IQueryable <CatalogsResponse> ApplyFilter(IQueryable <CatalogsResponse> query, CatalogsFilter filter)
        {
            if (filter.Id != null)
            {
                query = query.Where(p => p.Id == filter.Id);
            }

            if (filter.Name != null)
            {
                query = query.Where(p => p.Name.StartsWith(filter.Name));
            }

            return(query);
        }