static async Task Main(string[] args)
        {
            var productId = args != null && args.Length > 0 && int.TryParse(args[0], out int value) ? value : 1;

            var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client  = new ProductsService.ProductsServiceClient(channel);
            var request = new ProductRequest()
            {
                Id = productId
            };
            var result = await client.GetProductByIdAsync(request);

            Console.WriteLine($"{result.Id} {result.Name} {result.Price} {result.IsAvailable} {result.Category}");

            Console.ReadKey();
        }
        public ObservableCollection <Product> getAllProducts()
        {
            productSvc = new ProductsService.ProductsServiceClient();
            ObservableCollection <Product> products = new ObservableCollection <Product>();
            var dbProducts = productSvc.GetAllProducts();

            foreach (var product in dbProducts)
            {
                products.Add(new Product
                {
                    ProductID       = product.ProductID,
                    ProductName     = product.ProductName,
                    CategoryID      = product.CategoryID,
                    QuantityPerUnit = product.QuantityPerUnit,
                    UnitPrice       = product.UnitPrice,
                    UnitsInStock    = product.UnitsInStock,
                    Discontinued    = product.Discontinued
                });
            }
            return(products);
        }