Ejemplo n.º 1
0
        static async Task Main(string[] args)
        {
            using var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client = new ProductProtoServiceClient(channel);

            // Get product
            await GetProductAsync(client);

            // Get all product
            await GetAllProducts(client);

            // Add Product
            await AddProductAsync(client);

            // Insert Bulk Product
            await InsertBulkProduct(client);

            // Update Product
            await UpdateProductAsync(client);

            // Delete Product
            await DeleteProductAsync(client);

            // Get all product
            await GetAllProducts(client);
        }
Ejemplo n.º 2
0
        private static async Task InsertBulkProduct(ProductProtoServiceClient client)
        {
            // InsertBulkProduct
            Console.WriteLine("InsertBulkProduct started...");
            using var clientBulk = client.InsertBulkProduct();

            for (var i = 0; i < 3; i++)
            {
                var productModel = new ProductModel
                {
                    Name        = $"Product{i}",
                    Description = "Bulk inserted product",
                    Price       = 399,
                    Status      = ProductStatus.Instock,
                    CreatedTime = Timestamp.FromDateTime(DateTime.UtcNow)
                };

                await clientBulk.RequestStream.WriteAsync(productModel);
            }
            await clientBulk.RequestStream.CompleteAsync();

            var responseBulk = await clientBulk;

            Console.WriteLine($"Status: {responseBulk.Success}. Insert Count: {responseBulk.InsertCount}");
            Thread.Sleep(1000);
        }
Ejemplo n.º 3
0
        private static async Task DeleteProductAsync(ProductProtoServiceClient client)
        {
            // DeleteProductAsync
            Console.WriteLine("DeleteProductAsync started...");
            var deleteProductResponse = await client.DeleteProductAsync(new DeleteProductRequest { ProductId = 1 });

            Console.WriteLine("DeleteProductAsync Response: " + deleteProductResponse.Success.ToString());
            Thread.Sleep(1000);
        }
Ejemplo n.º 4
0
 private static async Task GetAllProducts(ProductProtoServiceClient client)
 {
     Console.WriteLine("GetAllProducts started...");
     using var clientData = client.GetAllProducts(new GetAllProductsRequest());
     await foreach (var responseData in clientData.ResponseStream.ReadAllAsync())
     {
         Console.WriteLine(responseData);
     }
     Thread.Sleep(1000);
 }
Ejemplo n.º 5
0
        private static async Task GetProductAsync(ProductProtoServiceClient client)
        {
            Console.WriteLine("GetProductAsync started...");
            var response = await client.GetProductAsync(new GetProductRequest()
            {
                ProductId = 3
            });

            Console.WriteLine($"GetProductAsync response: {response.ToString()}");
        }
Ejemplo n.º 6
0
        private static async Task GetProductAsync(ProductProtoServiceClient client)
        {
            // GetProductAsync
            Console.WriteLine("GetProductAsync started...");
            var response = await client.GetProductAsync(
                new GetProductRequest
            {
                ProductId = 1
            });

            Console.WriteLine("GetProductAsync Response: " + response.ToString());
            Thread.Sleep(1000);
        }
Ejemplo n.º 7
0
        private static async Task AddProductAsync(ProductProtoServiceClient client)
        {
            Console.WriteLine("AddProductAsync started...");
            var addProduct = await client.AddProductAsync(new AddProductRequest {
                Product = new ProductModel
                {
                    Name        = "Red",
                    Description = "New Red Phone Mi10T",
                    Price       = 699,
                    Status      = ProductStatus.Instock,
                    CreatedTime = Timestamp.FromDateTime(DateTime.UtcNow)
                }
            });

            Console.WriteLine($"AddProduct Response: {addProduct.ToString()}");
            Thread.Sleep(1000);
        }
Ejemplo n.º 8
0
        private static async Task UpdateProductAsync(ProductProtoServiceClient client)
        {
            // UpdateProductAsync
            Console.WriteLine("UpdateProductAsync started...");
            var updateProductResponse = await client.UpdateProductAsync(
                new UpdateProductRequest
            {
                Product = new ProductModel
                {
                    ProductId   = 2,
                    Name        = "Red",
                    Description = "New Red Phone Mi10T",
                    Price       = 699,
                    Status      = ProductStatus.Instock,
                    CreatedTime = Timestamp.FromDateTime(DateTime.UtcNow)
                }
            });

            Console.WriteLine("UpdateProductAsync Response: " + updateProductResponse.ToString());
            Thread.Sleep(1000);
        }
Ejemplo n.º 9
0
        private static async Task GetAllProducts(ProductProtoServiceClient client)
        {
            //// GetAllProducts
            //Console.WriteLine("GetAllProducts started...");
            //using (var clientData = client.GetAllProducts(new GetAllProductsRequest()))
            //{
            //    while (await clientData.ResponseStream.MoveNext(new System.Threading.CancellationToken()))
            //    {
            //        var currentProduct = clientData.ResponseStream.Current;
            //        Console.WriteLine(currentProduct);
            //    }
            //}
            //Thread.Sleep(1000);

            // GetAllProducts with C# 8
            Console.WriteLine("GetAllProducts with C#8 started...");
            using var clientData = client.GetAllProducts(new GetAllProductsRequest());
            await foreach (var responseData in clientData.ResponseStream.ReadAllAsync())
            {
                Console.WriteLine(responseData);
            }
            Thread.Sleep(1000);
        }
Ejemplo n.º 10
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);

                try
                {
                    using var channel = GrpcChannel.ForAddress(_config.GetValue <string>("WorkerService:ServerUrl"));
                    var client = new ProductProtoServiceClient(channel);
                    _logger.LogInformation("AddProductAsync started..");
                    var addProductResponse = await client.AddProductAsync(await _productFactory.Generate());

                    _logger.LogInformation("AddProduct Response: {product}", addProductResponse.ToString());
                }
                catch (Exception exception)
                {
                    _logger.LogError(exception.Message);
                    throw;
                }

                await Task.Delay(_config.GetValue <int>("WorkerService:TaskInterval"), stoppingToken);
            }
        }