public static void MethodInnerCustomerOrderProducts() { Program.IntroLine(true, "InnerJoin"); Console.WriteLine("Maakt een inner join van Customers, Orders en Products"); Console.WriteLine("Geeft alle producten in orders van mensen die een 'M' in hun naam hebben weer."); Console.WriteLine("Geeft een object terug met de product omschrijving en naam van de klant"); Console.WriteLine("door twee Join methodes te gebruiken."); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var sequence = SequenceGenerator.Customers().Where(customer => customer.Name.Contains("M")) .Join( SequenceGenerator.Orders(), customer => customer.Id, order => order.CustomerId, (customer, order) => new { order, customer } ) .Join( SequenceGenerator.Products(), item => item.order.GetFirstProductId(), product => product.Id, (item, product) => new { description = product.Description, name = item.customer.Name } ); foreach (var item in sequence) { Console.WriteLine($"{item.description} | {item.name}"); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void DistinctCustomers() { Program.IntroLine(true, "Distinct"); Console.WriteLine("Pakt alle unieke customers, zodat er geen duplicaten zijn."); Console.WriteLine("Customer implementeerd IEquitable waardoor dit model"); Console.WriteLine("vergelijkbaar is met het andere model."); Console.WriteLine("Dit is zodat er altijd unieke modellen zijn"); Console.WriteLine("en je kan hierbij je eigen implementatie maken."); Console.WriteLine("Geeft 15 klanten terug omdat ze allemaal uniek zijn."); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var sequence = SequenceGenerator.Customers().Distinct(); foreach (var customer in sequence) { Console.WriteLine($"{customer.Id} | {customer.Name}"); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void QueryInnerCustomerOrderProducts() { Program.IntroLine(false, "InnerJoin"); Console.WriteLine("Maakt een inner join van Customers, Orders en Products"); Console.WriteLine("Geeft alle producten in orders van mensen die een 'M' in hun naam hebben weer."); Console.WriteLine("Vraagt eerst alle IEnumerables en voert daarna join query uit."); Console.WriteLine("Geeft een object terug met de product omschrijving en naam van de klant."); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var customers = SequenceGenerator.Customers(); var orders = SequenceGenerator.Orders(); var products = SequenceGenerator.Products(); var sequence = from customer in customers join order in orders on customer.Id equals order.CustomerId join product in products on order.GetFirstProductId() equals product.Id where customer.Name.Contains("M") select new { description = product.Description, name = customer.Name }; foreach (var item in sequence) { Console.WriteLine($"{item.description} | {item.name}"); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void FirstOrDefaultOnName() { Program.IntroLine(true, "FirstOrDefault"); Console.WriteLine("Heeft de reeks van customers en pakt de eerste customer van"); Console.WriteLine("deze reeks die aan de voorwaarde voldoet."); Console.WriteLine("Zal een Customer teruggeven met de naam 'Bram'"); Console.WriteLine("Als er geen customer kan worden gevonden zal de functie de default waarde teruggeven."); Console.WriteLine("In het geval van een object is dat null. Deze moet ook afgevangen worden."); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var customer = SequenceGenerator.Customers().FirstOrDefault(c => c.Name.Contains("Bram")); if (customer != null) { Console.WriteLine($"{customer.Id} | {customer.Name}"); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void FirstOnName() { Program.IntroLine(true, "First"); Console.WriteLine("Heeft de reeks van customers en pakt de eerste customer van"); Console.WriteLine("deze reeks die aan de voorwaarde voldoet."); Console.WriteLine("Zal een Customer teruggeven met de naam 'Bram'"); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var customer = SequenceGenerator.Customers().First(c => c.Name.Contains("Bram")); Console.WriteLine($"{customer.Id} | {customer.Name}"); stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void TakeFive() { Program.IntroLine(true, "Take"); Console.WriteLine("Heeft de reeks van customers en pakt de eerste 5 van deze reeks."); Console.WriteLine("Zal de eerste 5 Customers geven in een IEnumerable van Customers."); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var sequence = SequenceGenerator.Customers().Take(5); foreach (var item in sequence) { Console.WriteLine($"{item.Id} | {item.Name}"); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void QuerySelectCustomerName() { Program.IntroLine(false, "Select"); Console.WriteLine("In de query methode wordt eerst de IEnumerable van Customers opgehaald."); Console.WriteLine("Hierop wordt vervolgens een select query op uitgevoerd."); Console.WriteLine("zal er een geordende IEnumerable van strings worden teruggeven die uit de Customer reeks komt."); Program.WhiteLine(); ConsoleTableHeader(); var stopwatch = new Stopwatch(); stopwatch.Start(); var collection = SequenceGenerator.Customers(); var sequence = from customer in collection select customer.Name; foreach (var item in sequence) { Console.WriteLine($" | {item}"); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }
public static void FirstOnNameException() { Program.IntroLine(true, "First"); Console.WriteLine("Heeft de reeks van customers en pakt de eerste customer van"); Console.WriteLine("Omdat de customer niet te vinden is, zal de functie een exception gooien."); Program.WhiteLine(); var stopwatch = new Stopwatch(); stopwatch.Start(); try { var customer = SequenceGenerator.Customers().First(c => c.Name.Contains("TEST123")); Console.WriteLine($"{customer.Id} | {customer.Name}"); } catch (InvalidOperationException e) { Console.WriteLine(e); } stopwatch.Stop(); Program.WhiteLine(); Program.StopwatchLine(stopwatch.ElapsedMilliseconds); }