Ejemplo n.º 1
0
        public override Task <ProductBasicGetsResponse> Gets(ProductBasicGetsRequest request, ServerCallContext context)
        {
            ProductBasicGetsResponse response = new ProductBasicGetsResponse();

            for (var i = 0; i < request.PageSize; i++)
            {
                response.Result.Add(new ProductBasicGetsResult
                {
                    ProductId   = (request.PageIndex - 1) * request.PageSize + i + 1,
                    ProductName = $"Price:{ request.PageIndex }_{i}_{request.Items}_{request.PType}"
                });
            }
            return(Task.FromResult(response));
        }
Ejemplo n.º 2
0
        private static void Main(string[] args)//async
        {
            var pipeline = new PipelineBuilder()
                           //.Use<ExceptionMiddleware>()
                           //.Use<TimerMiddleware>()
                           //.Use<LoggingMiddleware>()
                           //.Use<TimeoutMiddleware>()
                           .Use <PolicyMiddleware>(new PolicyMiddlewareOptions
            {
                RetryTimes         = 2,
                TimoutMilliseconds = 100
            })
            ;

            //pipeline.Use<LoggingMiddleware>();// pipeline.UseWhen<LoggingMiddleware>(ctx => ctx.Context.Method.EndsWith("SayHello"));
            //pipeline.Use<TimeoutMiddleware>(new TimeoutMiddlewareOptions { TimoutMilliseconds = 1000 });
            //console logger
            pipeline.Use(async(ctx, next) =>
            {
                Console.WriteLine(ctx.Request.ToString());
                await next(ctx);
                Console.WriteLine(ctx.Response.ToString());
            });

            Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
            MiddlewareCallInvoker callInvoker = new MiddlewareCallInvoker(channel, pipeline.Build());

            var clientApi = new Get.GetClient(callInvoker);

            var replyApi = clientApi.SayHello(new ContractsSample1.HelloApiDemo.HelloRequest {
                Name = " APII"
            });

            Console.WriteLine("Greeting: " + replyApi.Message);

            var client2 = new ProductBasicSrv.ProductBasicSrvClient(callInvoker);
            var request = new ProductBasicGetsRequest
            {
                PageIndex = 1,
                PageSize  = 10,
            };

            request.Items.Add(1);
            request.PType = ProductBasicGetsRequest.Types.PhoneType.Work;
            var result2 = client2.Gets(request);

            //var s = client2.Gets2();
            //s.RequestStream.WriteAsync
            //var sd = await client2.GetsAsync(request);
            foreach (var r in result2.Result)
            {
                Console.WriteLine($"{r.ProductId}|---------|{r.ProductName}");
            }

            var    client = new BuiltHelloDemoSrv.BuiltHelloDemoSrvClient(callInvoker);
            String user   = "******";

            var reply = client.SayHello(new ContractsSample1.HelloDemo.HelloRequest {
                Name = user
            });

            Console.WriteLine("Greeting: " + reply.Message);

            channel.ShutdownAsync().Wait();
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }