De domein laag bevat klassen voor SportStore. Dit domein zullen we tijdens deze cursus veel gebruiken dus zorg dat je jezelf ermee familiariseert.
Het domein vormt het hart van een online shop die sportartikelen verkoopt. Klanten (Customer/City) kunnen in de online shop browsen doorheen de producten (Product/Category), en deze naar wens toevoegen aan, of verwijderen uit, een winkelkarretje (Cart/CartLine). Desgewenst kan men de producten die in het winkelkarretje liggen ook effectief bestellen (Order/OrderLine).
In volgende lessen zal je deze online shop zien groeien. Voor deze les maken we enkel gebruik van dit domein binnen een console applicatie waarin we oefenen op LINQ.
- Clone deze repository;
- Bekijk de solution in visual studio en lees volgende instructies grondig door.
Deze folder bevat de domein laag.
Deze folder bevat 1 klasse DataSourceProvider. De DataSourceProvider heeft drie publieke read-only properties. Ze leveren de IEnumerables aan waarop we met Linq zullen werken.
Als je wil zien wat deze properties bevatten kan je de private Seed methode raadplegen in deze klasse maar je hoeft in feite geen verdere kennis te hebben van deze klasse om de oefeningen te kunnen maken.
public static IEnumerable<Category> Categories {get;set;}
public static IEnumerable<Customer> Customers {get;set;}
public static IEnumerable<Product> Products {get;set;}Deze folder is een klasse ProductViewModel gedefinieerd. Deze klasse heeft drie properties: Name, Price en PriceEuro: de naam van een product, zijn prijs in $, en de prijs in Euro (gebruikte koers 1 $ = 0.9 Euro). Tijdens de oefeningen zal je straks instanties van deze klasse moeten maken.
In de Main methode van deze klasse vind je bovenaan de declaratie van drie IEnumerables die je zal gebruiken met LINQ:
IEnumerable<Category> categories = DataSourceProvider.Categories;
IEnumerable<Customer> customers = DataSourceProvider.Customers;
IEnumerable<Product> products = DataSourceProvider.Products;In de Main methode van Program.cs vind je per region een opgave. Je moet telkens de LINQ expressie schrijven die het gevraagde resultaat oplevert. Er is telkens reeds een stukje code voorzien die zorgt voor de uitvoer van het resultaat naar de console.
Enkele opmerkingen:
Je kan jouw uitvoer vergelijken met de voorbeeld uitvoer die hieronder is gegeven.
De voornamen en steden voor de klanten deels random werden gekozen. Voor queries waar deze properties gebruikt worden kan je dus een afwijkend resultaat bekomen. Evalueer daarom zelf steeds goed je resultaat. Je kan steeds gebruik maken van breakpoints om de inhoud van
categories,customersenproductste bekijken.
Na elke vraag staat er een
Console.ReadLine(), dus druk enter om de oplossing op de volgende vraag te bekijken.
De resultaten voor de klanten kunnen afwijken daar voornamen en steden van klanten random worden aangemaakt.
- Pas de klasse
Cartaan, maak gebruik van expression bodied function members - Maak een extension methode
Shuffledie de klasseIEnumerable<T>uitbreidt en de lijst van T door mekaar haalt.


