public async Task <QueryResponse <string> > Query(CategoryQueryRequest query, CancellationToken cancellationToken = default) { var qr = Data.Categories.AsQueryable(); if (!string.IsNullOrWhiteSpace(query.Name)) { qr = qr.Where(x => x.Name.Contains(query.Name)); } Pagination pagination = new Pagination { TotalCount = await qr.CountAsync(cancellationToken), }; if (query.Pagination != null) { qr = qr.Skip(query.Pagination.Offset).Take(query.Pagination.CountPerPage); pagination.PageNumber = query.Pagination.PageNumber; pagination.CountPerPage = query.Pagination.CountPerPage; } else { pagination.PageNumber = 0; pagination.CountPerPage = pagination.TotalCount; } return(new QueryResponse <string>(await qr.Select(x => x.Id).ToArrayAsync(cancellationToken), pagination)); }
public async Task <ActionResult <QueryResponse <string> > > Query([FromBody] CategoryQueryRequest query) { if (!await Provider.CanRead()) { return(BadRequest()); } return(Ok(await Provider.Query(query))); }
public virtual async Task <QueryResponse <string> > Query(CategoryQueryRequest query, CancellationToken cancellationToken = default) { query.Pagination ??= new Pagination(); PagingPath?paging = null; paging ??= new PagingPath(Path.Join(RootPath, "pages")); await EnsurePagingConfig(paging, cancellationToken); paging.FillPagination(query.Pagination); var res = new QueryResponse <string>(await GetPagingResult(paging, query.Pagination, cancellationToken), query.Pagination); return(res); }
public IActionResult Query([FromQuery] CategoryQueryRequest filter) { ResultCode resultCode; QueryModel queryResult; (resultCode, queryResult) = _service.Query(filter); Result error; int statusCode; (statusCode, error) = ResultHandler.GetStatusCodeAndResult(resultCode); GeneralResponse response = new GeneralResponse { Result = queryResult, Error = error, }; return(StatusCode(statusCode, response)); }
public override async Task <IEnumerable <string> > All(CancellationToken cancellationToken = default) { List <string> result = new List <string>(); CategoryQueryRequest pq = new CategoryQueryRequest(); while (true) { cancellationToken.ThrowIfCancellationRequested(); var req = await Query(pq, cancellationToken); result.AddRange(req.Results); if (!req.CurrentPage.HasNextPage) { break; } pq.Pagination = req.CurrentPage.NextPage(); } return(result); }
public (ResultCode, QueryModel) Query(CategoryQueryRequest filter) { QueryModel queryResult = new QueryModel(); List <CategoryQueryDTO> categoryDTOs = _procedureHelper.GetData <CategoryQueryDTO>( "category_table_query", filter); if (0 != categoryDTOs.Count) { queryResult.TotalRows = categoryDTOs[0].TotalRows; } List <CategoryModel> categories = new List <CategoryModel>(); foreach (var item in categoryDTOs) { CategoryModel category = new CategoryModel(item); categories.Add(category); } queryResult.Items = categories; return(ResultCode.SUCCESS, queryResult); }