示例#1
0
        public BasketServiceTest(CustomWebApplicationFactory factory)
        {
            var httpClient = factory.CreateClient();
            var channel    = GrpcChannel.ForAddress(
                httpClient.BaseAddress,
                new GrpcChannelOptions {
                HttpClient = httpClient
            });

            GrpcClient = new Basket.BasketClient(channel);
        }
示例#2
0
        public async Task UpdateAsync(BasketData currentBasket)
        {
            await GrpcCallerService.CallService(_urls.GrpcBasket, async channel =>
            {
                var client = new Basket.BasketClient(channel);
                _logger.LogDebug("Grpc update basket currentBasket {@currentBasket}", currentBasket);
                var request = MapToCustomerBasketRequest(currentBasket);
                _logger.LogDebug("Grpc update basket request {@request}", request);

                return(await client.UpdateBasketAsync(request));
            });
        }
示例#3
0
        public async Task <BasketData> GetById(string id)
        {
            return(await GrpcCallerService.CallService(_urls.GrpcBasket, async channel =>
            {
                var client = new Basket.BasketClient(channel);
                _logger.LogDebug("grpc client created, request = {@id}", id);
                var response = await client.GetBasketByIdAsync(new BasketRequest {
                    Id = id
                });
                _logger.LogDebug("grpc response {@response}", response);

                return MapToBasketData(response);
            }));
        }
示例#4
0
        public async Task <BasketResponse> RemoveToBasket([Required] BasketRequest request)
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Invalid model");
            }
            var response = await GrpcCallerService.CallService(urlGrpc : GRPCUrl.ProductService, logger : _logger, func : async channel =>
            {
                var client = new Basket.BasketClient(channel);
                _logger.LogDebug("Grpc remove backet {@request}", request);
                return(await client.RemoveFromBasketAsync(request));
            });

            return(response);
        }
 public BasketService(Basket.BasketClient basketClient, ILogger <BasketService> logger)
 {
     _basketClient = basketClient;
     _logger       = logger;
 }
 public GetBasketService(Basket.BasketClient basketClient, HttpClient httpClient)
 {
     _basketClient = basketClient;
     _httpClient   = httpClient;
 }
示例#7
0
 public ClearBasketService(Basket.BasketClient basketClient)
 {
     _basketClient = basketClient;
 }
示例#8
0
 public BasketController(IServices services, Basket.BasketClient client)
 {
     _deadline = DateTime.UtcNow.AddMilliseconds(services.Basket.Timeout);
     _client   = client;
 }