Пример #1
0
        /// <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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }