Exemple #1
0
        public override Task <ProductGetResponse> Create(ProductCreateRequest request, ServerCallContext context)
        {
            if (store.ContainsKey(request.ProductId))
            {
                return(Task.FromResult(default(ProductGetResponse)));
            }

            Channel           channel     = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
            ClientCallInvoker callInvoker = new ClientCallInvoker(channel);
            var userClient = new UserService.UserServiceClient(callInvoker);

            var product = store[request.UserId];

            product.ProductId   = request.ProductId;
            product.ProductName = request.ProductName;
            product.User        = userClient.Get(new UserGetRequest
            {
                UserId = request.UserId
            });
            userClient.Update(new UserGetResponse
            {
                UserId       = product.User.UserId,
                UserName     = product.User.UserName,
                ProductCount = product.User.ProductCount + 1
            });
            //关闭
            channel.ShutdownAsync().Wait();
            return(Task.FromResult(product));
        }