コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }