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