コード例 #1
0
        public void Import(PetStoreDBEntities db)
        {
            var uniqueSpecies = new HashSet <string>();

            while (uniqueSpecies.Count < this.NumberOfSpecies)
            {
                uniqueSpecies.Add(RandomGenerator.RandomString(5, 50));
            }

            var countries          = db.Countries.Select(x => x.Id).ToList();
            var species            = uniqueSpecies.ToList();
            var currentSpecieIndex = 0;

            foreach (var countryId in countries)
            {
                var speciesForCountry = RandomGenerator.RandomNumber(2, 8);
                if (currentSpecieIndex + speciesForCountry > species.Count)
                {
                    speciesForCountry = species.Count - currentSpecieIndex;
                }
                for (int i = 0; i < speciesForCountry; i++)
                {
                    db.Species.Add(new Species()
                    {
                        Name      = species[currentSpecieIndex],
                        CountryId = countryId
                    });

                    currentSpecieIndex++;
                }
            }

            if (currentSpecieIndex < species.Count)
            {
                var leftSpecies = species.Count - currentSpecieIndex;
                for (int i = 0; i < leftSpecies; i++)
                {
                    var countryIdIndex = RandomGenerator.RandomNumber(0, countries.Count - 1);
                    db.Species.Add(new Species()
                    {
                        Name      = species[currentSpecieIndex],
                        CountryId = countries[countryIdIndex]
                    });

                    currentSpecieIndex++;
                }
            }

            db.SaveChanges();
        }
コード例 #2
0
        public void Import(PetStoreDBEntities db)
        {
            var species            = db.Species.ToList();
            var categories         = db.Categories.Select(x => x.Id).ToList();
            var productsInCategory = this.NumberOfProducts / categories.Count;
            var addedProducts      = 0;

            foreach (var categoryId in categories)
            {
                if (addedProducts + productsInCategory > this.NumberOfProducts)
                {
                    productsInCategory = this.NumberOfProducts - addedProducts;
                }
                for (int i = 0; i < productsInCategory; i++)
                {
                    this.AddProduct(db, categoryId, species);

                    if (addedProducts % 10 == 0)
                    {
                        Console.Write('.');
                    }

                    if (addedProducts % 100 == 0)
                    {
                        Console.WriteLine($"Added {addedProducts} products.");
                        db.SaveChanges();
                        db      = new PetStoreDBEntities();
                        species = db.Species.ToList();
                    }

                    addedProducts++;
                }
            }

            if (addedProducts < this.NumberOfProducts)
            {
                var leftProducts = this.NumberOfProducts - addedProducts;
                for (int i = 0; i < leftProducts; i++)
                {
                    var categoryId = RandomGenerator.RandomNumber(0, categories.Count - 1);
                    this.AddProduct(db, categoryId, species);

                    addedProducts++;
                }
            }

            db.SaveChanges();
        }
コード例 #3
0
        private void AddProduct(PetStoreDBEntities db, int categoryId, IList <Species> species)
        {
            var product = new Product
            {
                CategotyId = categoryId,
                Name       = RandomGenerator.RandomString(5, 25),
                Price      = RandomGenerator.RandomNumber(10, 1000)
            };

            var numberOfSpeciesPerProduct = RandomGenerator.RandomNumber(2, 10);

            for (int i = 0; i < numberOfSpeciesPerProduct; i++)
            {
                product.Species.Add(species[RandomGenerator.RandomNumber(0, species.Count - 1)]);
            }

            db.Products.Add(product);
        }
コード例 #4
0
        public void Import(PetStoreDBEntities db)
        {
            var categories = new HashSet <string>();

            while (categories.Count < this.NumberOfCategories)
            {
                categories.Add(RandomGenerator.RandomString(5, 20));
            }

            foreach (var category in categories)
            {
                db.Categories.Add(new Category()
                {
                    Name = category
                });
            }

            db.SaveChanges();
        }
コード例 #5
0
        public void Import(PetStoreDBEntities db)
        {
            var uniqueCountries = new HashSet <string>();

            while (uniqueCountries.Count < this.NumberOfCountries)
            {
                uniqueCountries.Add(RandomGenerator.RandomString(5, 50));
            }

            foreach (var country in uniqueCountries)
            {
                db.Countries.Add(new Country()
                {
                    Name = country
                });
            }

            db.SaveChanges();
        }
コード例 #6
0
        public void Import(PetStoreDBEntities db)
        {
            var species   = db.Species.Select(x => x.Id).ToList();
            var colors    = db.Colors.Select(x => x.Id).Count();
            var addedPets = 0;

            foreach (var speciesId in species)
            {
                var petsPerSpecies = NumberOfPets / species.Count();
                for (int i = 0; i < petsPerSpecies; i++)
                {
                    var price       = RandomGenerator.RandomNumber(5, 2500);
                    var colorId     = RandomGenerator.RandomNumber(1, colors);
                    var beforeDate  = DateTime.Now.AddDays(-60);
                    var afterDate   = new DateTime(2010, 12, 31);
                    var dateOfBirth = RandomGenerator.RandomDateTime(afterDate, beforeDate);

                    db.Pets.Add(new Pet()
                    {
                        BirthDate = dateOfBirth,
                        ColorId   = colorId,
                        Price     = price,
                        SpeciesId = speciesId
                    });

                    if (addedPets % 10 == 0)
                    {
                        Console.Write('.');
                    }

                    if (addedPets % 100 == 0)
                    {
                        Console.Write($"Added {addedPets} pets.");
                        Console.WriteLine();
                        db.SaveChanges();

                        db = new PetStoreDBEntities();
                    }

                    addedPets++;
                }
            }

            if (addedPets < NumberOfPets)
            {
                var leftPets = NumberOfPets - addedPets;
                for (int i = 0; i < leftPets; i++)
                {
                    var price          = RandomGenerator.RandomNumber(5, 2500);
                    var colorId        = RandomGenerator.RandomNumber(1, colors);
                    var beforeDate     = DateTime.Now.AddDays(-60);
                    var afterDate      = new DateTime(2010, 12, 31);
                    var dateOfBirth    = RandomGenerator.RandomDateTime(afterDate, beforeDate);
                    var speciesIdIndex = RandomGenerator.RandomNumber(0, species.Count - 1);

                    db.Pets.Add(new Pet()
                    {
                        BirthDate = dateOfBirth,
                        ColorId   = colorId,
                        Price     = price,
                        SpeciesId = species[speciesIdIndex]
                    });

                    addedPets++;
                }
            }

            db.SaveChanges();
        }