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); }
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)); }