Example #1
0
        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));
        }
Example #2
0
 public async Task <ActionResult <QueryResponse <string> > > Query([FromBody] CategoryQueryRequest query)
 {
     if (!await Provider.CanRead())
     {
         return(BadRequest());
     }
     return(Ok(await Provider.Query(query)));
 }
Example #3
0
        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));
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }