/// <summary> /// Initialisiert die Datenbank mit dem Musterdatengenerator Bogus. /// Erfordert das NuGet Paket Bogus. /// </summary> public void Seed() { // Damit immer die gleichen Werte generiert werden, wird ein fixes Seed verwendet. Randomizer.Seed = new Random(201227); Faker f = new Faker(); var kategorien = (from k in f.Commerce.Categories(20).Distinct() select new Kategorie { Name = k }).Take(10).ToList(); Kategorien.AddRange(kategorien); SaveChanges(); var kunden = new Faker <Kunde>() .Rules((f, k) => { k.Vorname = f.Name.FirstName(); k.Zuname = f.Name.LastName(); k.Adresse = f.Address.StreetAddress(); k.Plz = f.Random.Int(1000, 9999); k.Ort = f.Address.City(); }) .Generate(20); Kunden.AddRange(kunden); SaveChanges(); var artikel = new Faker <Artikel>() .Rules((f, a) => { a.Ean = f.Commerce.Ean13(); a.Name = f.Commerce.ProductName(); a.Preis = Math.Round(f.Random.Decimal(10, 1000), 4); a.Hersteller = f.Company.CompanyName(); a.ProduziertAb = new DateTime(2018, 1, 1).AddDays(f.Random.Int(0, 2 * 365)); a.EingestelltAb = a.ProduziertAb.AddDays(f.Random.Int(100, 365)).OrNull(f, 0.5f); a.Kategorie = f.Random.ListItem(kategorien); }) .Generate(200).GroupBy(a => a.Name).Select(a => a.First()) .ToList(); Artikel.AddRange(artikel); SaveChanges(); var bestellungen = new Faker <Bestellung>() .Rules((f, b) => { b.Artikel = f.Random.ListItem(artikel); b.Kunde = f.Random.ListItem(kunden); b.Datum = b.Artikel.ProduziertAb.AddSeconds(f.Random.Long(0, 1L * 365 * 86400)); b.BezahltAm = b.Datum.AddSeconds(f.Random.Int(1 * 86400, 10 * 86400)).OrNull(f, 0.1f); b.Menge = f.Random.Int(1, 5); }).Generate(200); Bestellungen.AddRange(bestellungen); SaveChanges(); }
public void Seed() { Randomizer.Seed = new Random(3858); Faker f = new Faker("de"); var bundeslaender = new string[] { "N", "W", "B" }; var kunden = new Faker <Kunde>() .RuleFor(k => k.Vorname, f => f.Name.FirstName()) .RuleFor(k => k.Zuname, f => f.Name.LastName()) .RuleFor(k => k.Bundesland, f => f.Random.ListItem(bundeslaender)) .Generate(16) .ToList(); Kunden.AddRange(kunden); SaveChanges(); var kategorien = new Faker <Kategorie>() .RuleFor(k => k.Name, f => f.Commerce.ProductMaterial()) .Generate(4) .ToList(); Kategorien.AddRange(kategorien); SaveChanges(); var artikel = new Faker <Artikel>() .RuleFor(a => a.EAN, f => f.Commerce.Ean13()) .RuleFor(a => a.Name, f => f.Commerce.ProductName()) .RuleFor(a => a.Preis, f => Math.Round(Math.Min(226, f.Random.GaussianDecimal(200, 30)), 2)) .RuleFor(a => a.Kategorie, f => f.Random.ListItem(kategorien)) .Generate(16) .ToList(); Artikel.AddRange(artikel); SaveChanges(); var bestellungen = new Faker <Bestellung>() .RuleFor(b => b.Datum, f => new DateTime(2020, 1, 1).AddSeconds(f.Random.Double(0, 20 * 86400))) .RuleFor(b => b.Kunde, f => f.Random.ListItem(kunden)) .Generate(64); Bestellungen.AddRange(bestellungen); var positionen = new Faker <Position>() .RuleFor(p => p.Bestellung, f => f.Random.ListItem(bestellungen)) .RuleFor(p => p.Artikel, f => f.Random.ListItem(artikel)) .RuleFor(p => p.Menge, f => f.Random.Int(1, 10)) .Generate(128); Positionen.AddRange(positionen); SaveChanges(); }
internal void Seed() { Randomizer.Seed = new Random(8675309); Faker f = new Faker(); var kategorien = new List <Kategorie> { new Kategorie { Name = "Pizza" }, new Kategorie { Name = "Pasti" }, new Kategorie { Name = "Pesce" }, }; Kategorien.AddRange(kategorien); SaveChanges(); var produkte = new List <Produkt> { new Produkt { Name = "Marinara", Kategorie = kategorien[0], Preis = 5.00M }, new Produkt { Name = "Margherita", Kategorie = kategorien[0], Preis = 6.00M }, new Produkt { Name = "Cipolla", Kategorie = kategorien[0], Preis = 7.00M }, new Produkt { Name = "Alla Napoletana", Kategorie = kategorien[1], Preis = 6.50M }, new Produkt { Name = "All Arabiata", Kategorie = kategorien[1], Preis = 7.50M }, new Produkt { Name = "Alla Bolognese", Kategorie = kategorien[1], Preis = 7.50M }, new Produkt { Name = "Schollenfilet gebacken", Kategorie = kategorien[2], Preis = 9.50M }, new Produkt { Name = "Natur gebratenes Schollenfilet", Kategorie = kategorien[2], Preis = 9.50M }, new Produkt { Name = "Miesmuscheln", Kategorie = kategorien[2], Preis = 11.50M }, }; Produkte.AddRange(produkte); SaveChanges(); var liefergebiete = new List <Liefergebiet> { new Liefergebiet { Plz = 1040, Ort = "Wien", Lieferzuschlag = 5M }, new Liefergebiet { Plz = 1050, Ort = "Wien", Lieferzuschlag = 5M }, new Liefergebiet { Plz = 1060, Ort = "Wien", Lieferzuschlag = 5M }, new Liefergebiet { Plz = 1160, Ort = "Wien", Lieferzuschlag = 8M }, new Liefergebiet { Plz = 1170, Ort = "Wien", Lieferzuschlag = 8M }, new Liefergebiet { Plz = 1180, Ort = "Wien", Lieferzuschlag = 8M } }; Liefergebiete.AddRange(liefergebiete); SaveChanges(); var kunden = new List <Kunde> { new Kunde { Vorname = "Lukas", Zuname = "Müller", Email = "*****@*****.**" }, new Kunde { Vorname = "Konstantin", Zuname = "Schmidt", Email = "*****@*****.**" }, new Kunde { Vorname = "Ben", Zuname = "Schneider", Email = "*****@*****.**" }, new Kunde { Vorname = "Jonas", Zuname = "Fischer", Email = "*****@*****.**" }, new Kunde { Vorname = "Elias", Zuname = "Weber", Email = "*****@*****.**" }, new Kunde { Vorname = "Niklas", Zuname = "Meyer", Email = "*****@*****.**" }, new Kunde { Vorname = "David", Zuname = "Wagner", Email = "*****@*****.**" }, new Kunde { Vorname = "Oskar", Zuname = "Becker", Email = "*****@*****.**" }, new Kunde { Vorname = "Philipp", Zuname = "Schulz", Email = "*****@*****.**" } }; foreach (var k in f.Random.ListItems(kunden, (int)(0.8 * kunden.Count))) { var bestellungen = new Faker <Bestellung>().Rules((f, b) => { b.Adresse = f.Address.StreetAddress(); b.Liefergebiet = f.Random.ListItem(liefergebiete); b.Kunde = f.Random.ListItem(kunden); b.Bestellzeit = new DateTime(2020, 5, 1, 0, 0, 0).AddSeconds(f.Random.Int(0, 5 * 86400)); }).Generate(f.Random.Int(1, 3)); foreach (var b in bestellungen) { var produktBestellungen = new Faker <ProduktBestellung>().Rules((f, p) => { p.Menge = f.Random.Int(1, 3); p.Produkt = f.Random.ListItem(produkte); p.Bestellung = b; }).Generate(f.Random.Int(1, 5)); b.ProduktBestellungen = produktBestellungen .GroupBy(pb => new { pb.Bestellung, pb.Produkt }) .Select(g => g.FirstOrDefault()) .ToList(); } k.Bestellungen = bestellungen; } Kunden.AddRange(kunden); SaveChanges(); }