Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }