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)); }
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(); }