public async Task <PaginatedCustomerResponse> Get([Required] CustomerItemsRequest 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 Customer.CustomerClient(channel); _logger.LogDebug("Grpc get customer request request {@request}", request); return(await client.GetCustomersAsync(request)); }); return(response); }
public override Task <PaginatedCustomerResponse> GetCustomers(CustomerItemsRequest request, ServerCallContext context) { var result = _kernel.GetEntities <User>().Where(user => user.UserType == UserType.Customer); 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)); }