Пример #1
0
        public async Task <PaginatedItemsResponse> Get([Required] ProductItemsRequest request)
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Invalid model");
            }
            var response = await GrpcCallerService.CallService(urlGrpc : GRPCUrl.IdentityService, logger : _logger, func : async channel =>
            {
                var client = new Product.ProductClient(channel);
                _logger.LogDebug("Grpc get products request {@request}", request);
                return(await client.GetProductsAsync(request));
            });

            return(response);
        }
Пример #2
0
        public override Task <PaginatedItemsResponse> GetProducts(ProductItemsRequest request, ServerCallContext context)
        {
            var result = _kernel.GetEntities <eShop.ProductEntities.Entities.Product>();

            if (!string.IsNullOrWhiteSpace(request.Search))
            {
                result = result.Where(user => user.Name.Contains(request.Search));
            }

            var itemsOnPage = result
                              .OrderBy(c => c.ModifiedOn).ThenBy(c => c.ModifiedOn)
                              .Skip(request.PageSize * request.PageIndex).Take(request.PageSize).ToList();
            var model = this.MapToResponse(itemsOnPage, result.Count(), request.PageIndex, request.PageSize);

            context.Status = new Status(StatusCode.OK, string.Empty);
            return(Task.FromResult(model));
        }