private static Categories.CategoriesClient CreateClient()
        {
            var channel = GrpcChannel.ForAddress("https://localhost:5071");

            var client = new Categories.CategoriesClient(channel);

            return(client);
        }
Exemple #2
0
        public static async Task FetchCategoriesExampleCall()
        {
            var channel = GrpcChannel.ForAddress("https://localhost:5051");
            var client  = new Categories.CategoriesClient(channel);
            var request = new GetAllCategoriesRequest();
            var replies = await client.GetAllCategoriesAsync(request);

            var categories = replies.Categories.ToList();

            Console.WriteLine($"Received {categories.Count} categories.");
        }
Exemple #3
0
        public static async Task CreateCategoriesStreamingExampleCall(GrpcChannel channel)
        {
            var client = new Categories.CategoriesClient(channel);

            var count         = 1;
            var receivedCount = 0;
            var maxCount      = 100000;

            using (var call = client.CreateNewCategory())
            {
                var responseTask = Task.Run(async() =>
                {
                    await foreach (var message in call.ResponseStream.ReadAllAsync())
                    {
                        receivedCount++;
                    }
                });

                while (count < maxCount)
                {
                    try
                    {
                        await call.RequestStream.WriteAsync(new CreateNewCategoryRequest
                        {
                            CategoryName = $"Category #{count++}"
                        });
                    }
                    catch (RpcException ex) when(ex.StatusCode == StatusCode.Cancelled)
                    {
                        Console.WriteLine("Cancelled");
                        break;
                    }
                }

                Console.WriteLine("Disconnecting");
                await call.RequestStream.CompleteAsync();

                await responseTask;
            }
        }