Ejemplo n.º 1
0
        private static void LinqQuery()
        {
            PrintHeader("b) QUERY PRODUCTS AND ORDERS THE LINQified WAY");
            PrintNote("Retrieve orders for product 'Car' having an order quantity bigger than one:");

            using var serviceProxy = new ServiceProxy <IRemoteLinqDataService>("net.tcp://localhost:8080/remotelinqdataservice");

            IQuery <Product> productQuery = serviceProxy
                                            .CreateQuery <Product>(service => service.GetProducts)
                                            .Where(p => p.Name == "Car");

            List <Product> products = productQuery.ToList();

            foreach (Product product in products)
            {
                PrintLine(_formatter, $"  {product}");

                IQuery <Order> orderQuery = serviceProxy
                                            .CreateQuery <Order>(service => service.GetOrders)
                                            .Where(o => o.Items.Where(i => i.ProductId == product.Id).Sum(i => i.Quantity) > 1);

                List <Order> orders = orderQuery.ToList();

                PrintLine($"  Orders ({orders.Count}):");
                foreach (Order order in orders)
                {
                    PrintLine(_formatter, $"    {order}");
                    foreach (OrderItem item in order.Items)
                    {
                        PrintLine(_formatter, $"      {item}");
                    }
                }

                PrintLine();
            }
        }
Ejemplo n.º 2
0
        private static void LinqQuery()
        {
            Console.WriteLine();
            Console.WriteLine("QUERY PRODUCTS AND ORDERS THE LINQified WAY :)");
            Console.WriteLine("========================================================================");
            using (var serviceProxy = new ServiceProxy <IRemoteLinqDataService>("RemoteLinqDataService"))
            {
                var productQuery = serviceProxy
                                   .CreateQuery <Product>(service => service.GetProducts)
                                   .Where(p => p.Name == "Car");
                var products = productQuery.ToList();

                Console.WriteLine("List orders for product 'Car' having an order quantity bigger than one:\n");
                foreach (var product in products)
                {
                    Console.WriteLine("\t{0}", product);

                    var orderQuery = serviceProxy
                                     .CreateQuery <Order>(service => service.GetOrders)
                                     .Where(o => o.Items.Where(i => i.ProductId == product.Id).Sum(i => i.Quantity) > 1);
                    var orders = orderQuery.ToList();

                    Console.WriteLine("\tOrders ({0}):", orders.Count());
                    foreach (var order in orders)
                    {
                        Console.WriteLine("\t\t{0}", order);
                        foreach (var item in order.Items)
                        {
                            Console.WriteLine("\t\t\t{0}", item);
                        }
                    }

                    Console.WriteLine();
                }
            }
        }