public ToyGeneratorsFactory(IRandomDataGenerator random, ILogger logger, ToyStoreEntities databaseContext, int checkPointFrequency = 1000)
 {
     this.random = random;
     this.logger = logger;
     this.databaseContext = databaseContext;
     this.checkPointFrequency = checkPointFrequency;
 }
Ejemplo n.º 2
0
 private static void GenerateRandomCountries(ToyStoreEntities db, int numberOfCountries, ToyStoreDataController toyStoreDataGenerator)
 {
     Console.Write("Adding Countries");
     for (int i = 0; i < numberOfCountries; i++)
     {
         db.Countries.Add(toyStoreDataGenerator.GetRandomCountry());
         Printer.Print(20, numberOfCountries, i);
     }
     Console.WriteLine();
 }
        private static void GenerateRandomToys(int count, ToyStoreEntities toyStoreDbContext)
        {
            for (var i = 0; i < count; i++)
            {
                if (i % 1000 == 0)
                {
                    ToyGenerationCheckPoint(i);
                }

                toyStoreDbContext.Toys.Add(GetRandomToy());
            }
        }
Ejemplo n.º 4
0
 private static void GenerateRandomManufacturers(
     ToyStoreEntities db,
     int numberOfManufacturers,
     ToyStoreDataController toyStoreDataGenerator,
     IList<int> countryIds)
 {
     Console.Write("Adding Manufacturers");
     for (int i = 0; i < numberOfManufacturers; i++)
     {
         db.Manufacturers.Add(toyStoreDataGenerator.GetRandomManufacturer(countryIds));
         Printer.Print(20, numberOfManufacturers, i);
     }
     Console.WriteLine();
 }
Ejemplo n.º 5
0
        public override void Generate()
        {
            var ageRangeIds = this.db.AgeRanges.Select(a => a.Id).ToArray();
            var manufacturerIds = this.db.Manufacturers.Select(m => m.Id).ToArray();
            var categoryIds = this.db.Categories.Select(c => c.Id).ToArray();

            Console.WriteLine("Adding toys");

            for (int i = 0; i < this.count; i++)
            {
                var toy = new Toy
                {
                    Name=random.GetRandomStringRandomLength(5, 20),
                    Type = random.GetRandomStringRandomLength(5, 20),
                    Color = random.GetRandomStringRandomLength(5, 20),
                    Price=random.GetRandomNumber(2, 1000),
                    ManufacturerId = manufacturerIds[random.GetRandomNumber(0, manufacturerIds.GetLength(0))],
                    AgeRangeId = ageRangeIds[random.GetRandomNumber(0, ageRangeIds.GetLength(0))],
                };

                var uniqueCategoryIds = new HashSet<int>();

                if (categoryIds.GetLength(0) > 0)
                {
                    var categoriesCountInToy = this.random.GetRandomNumber(1, Math.Max(10, categoryIds.GetLength(0)));

                    while (uniqueCategoryIds.Count != categoriesCountInToy)
                    {
                        uniqueCategoryIds.Add(categoryIds[this.random.GetRandomNumber(0, categoryIds.GetLength(0))]);
                    }
                }

                foreach (var categoryId in uniqueCategoryIds)
                {
                    toy.Categories.Add(this.db.Categories.Find(categoryId));
                }

                db.Toys.Add(toy);

                if (i % 100 == 0)
                {
                    db.SaveChanges();
                    //db.SaveChangesAsync();
                    db = new ToyStoreEntities();
                    Console.Write(".");
                }
            }

            Console.WriteLine("Toys added");
        }
Ejemplo n.º 6
0
        private static void AddToysToManufacturers(ToyStoreEntities db, RandomGenerator generator, IList<int> manufacturerIds, IList<Toy> toys)
        {
            var numberOfManufacturers = manufacturerIds.Count;
            Console.Write("Adding Toys to Manufacturers");

            var i = 0;
            foreach (var toy in toys)
            {
                toy.ManufacturerId = manufacturerIds[generator.GetRandomInt(0, numberOfManufacturers - 1)];
                db.SaveChanges();
                Printer.Print(20, numberOfManufacturers, i);
                i++;
            }
            Console.WriteLine();
        }
Ejemplo n.º 7
0
        static void Main()
        {
            var random = RandomData.Instance;
            var db = new ToyStoreEntities();
            db.Configuration.AutoDetectChangesEnabled = false;

            var listOfGenerators = new List<IDataGenerator>
            {
                new CategoryDataGenerator(db, random, 100),
                new ManufacturerDataGenerator(db, random, 50),
                new AgeRangeDataGenerator(db, random, 100),
                new ToyDataGenerator(db, random, 20000)
            };

            foreach (var generator in listOfGenerators)
            {
                generator.Generate();
                db.SaveChanges();
            }
        }
Ejemplo n.º 8
0
        private static void Main()
        {
            var db = new ToyStoreEntities();
            var random = RandomGenerator.Instance;
            db.Configuration.AutoDetectChangesEnabled = false;
            //TODO factory
            var dataGenerators = new List<DataGenerator>
            {
                new RandomManufacturersGenerator(random, db , 50),
                new RandomAgeRangesGenerator(random, db, 100), 
                new RandomCategoriesGenerator(random, db, 100),
                new RandomToysGenerator(random, db, 20000)
            };

            foreach (var dataGenerator in dataGenerators)
            {
                dataGenerator.Generate();
            }

            db.SaveChanges();
            db.Configuration.AutoDetectChangesEnabled = true;
        }
        private static void GenerateSampleData()
        {
            var random = RandomDataGenerator.Instance;
            var databaseContext = new ToyStoreEntities();
            var consoleLogger = new ConsoleLogger();
            databaseContext.Configuration.AutoDetectChangesEnabled = false;

            var toyFactory = new ToyGeneratorsFactory(random, consoleLogger, databaseContext);
            var generators = new List<DataGenerator>
                                 {
                                     toyFactory.GetAgeRangeGenerator(150),
                                     toyFactory.GetCategoriesGenerator(150),
                                     toyFactory.GetManufacturesGenerator(100),
                                     toyFactory.GetToyGenerator(20000)
                                 };

            foreach (var generator in generators)
            {
                generator.Generate();
                databaseContext.SaveChanges();
            }

            databaseContext.Configuration.AutoDetectChangesEnabled = true;
        }
Ejemplo n.º 10
0
 private static List<Toy> GetRandomToys(
     ToyStoreEntities db,
     int numberOfToys,
     ToyStoreDataController toyStoreDataGenerator,
     IList<int> colorIds,
     IList<int> manufacturerIds,
     IList<int> ageRangeIds)
 {
     List<Toy> toysToAdd = new List<Toy>();
     Console.Write("Adding Toys");
     for (int i = 0; i < numberOfToys; i++)
     {
         toysToAdd.Add(toyStoreDataGenerator.GetRandomToy(colorIds, manufacturerIds, ageRangeIds));
         Printer.Print(20, numberOfToys, i);
     }
     Console.WriteLine();
     return toysToAdd;
 }
Ejemplo n.º 11
0
        static void Main()
        {
            var db = new ToyStoreEntities();
            var generator = new RandomGenerator();
            var toyStoreGenerator = new ToyStoreDataController(generator);

            GenerateRandomAgeRanges(db, 100, toyStoreGenerator);
            db.SaveChanges();

            GenerateRandomColors(db, 30, toyStoreGenerator);
            db.SaveChanges();

            GenerateRandomCountries(db, 50, toyStoreGenerator);
            db.SaveChanges();

            GenerateRandomCategories(db, 100, toyStoreGenerator);
            db.SaveChanges();

            var countryIds = db.Countries.Select(c => c.CountryId).ToList();
            var colorIds = db.Colors.Select(c => c.ColorId).ToList();

            GenerateRandomManufacturers(db, 50, toyStoreGenerator, countryIds);
            db.SaveChanges();

            var manufacturerIds = db.Manufacturers.Select(m => m.ManufacturerId).ToList();
            var ageRangeIds = db.AgeRanges.Select(ar => ar.AgeRangeId).ToList();

            db.Toys.AddRange(GetRandomToys(db, 1000, toyStoreGenerator, colorIds, manufacturerIds, ageRangeIds));
            db.SaveChanges();

            var toys = db.Toys.ToList();

            AddToysToManufacturers(db, generator, manufacturerIds, toys);
            db.SaveChanges();
        }
Ejemplo n.º 12
0
 public DataGenerator(ToyStoreEntities db, RandomData random, int count)
 {
     this.db = db;
     this.random = random;
     this.count = count;
 }
 public AgeRangeGenerator(int count, IRandomDataGenerator random, ILogger logger, ToyStoreEntities databaseContext, int checkPointFrequency = 1000)
     : base(count, random, logger, checkPointFrequency)
 {
     this.databaseContext = databaseContext;
 }
Ejemplo n.º 14
0
        static void Main(string[] args)
        {
            var db = new ToyStoreEntities();
            db.Configuration.AutoDetectChangesEnabled = false;
            var rnd = RandomGenerator.GetInstance;
            var uniqueStrings = rnd.GenerateUniqueStringsWithRandomLength(5, 25, 50);

            int index = 0;
            foreach (var uniqueString in uniqueStrings)
            {
                db.Manufacturers.Add(
                    new Manufacturer()
                        {
                            Name = uniqueString,
                            Country = rnd.GenerateRandomStringWithRandomLength(5, 25),
                        });
                index++;

                if (index%100==0)
                {
                    db.SaveChanges();
                }
            }

            db.SaveChanges();

            index = 0;
            for (int i = 0; i < 100; i++)
            {
                db.Categories.Add(new Category() { Name = rnd.GenerateRandomStringWithRandomLength(5, 20) });

                index++;

                if (index % 100 == 0)
                {
                    db.SaveChanges();
                }
            }

            db.SaveChanges();

            index = 0;
            for (int i = 0; i < 100; i++)
            {
                int minYears = rnd.GenerateRandomNumber(1, 10);
                int maxYears = rnd.GenerateRandomNumber(minYears + 2, 25);
                db.AgeRanges.Add(
                    new AgeRange() { MinYears = minYears, MaxYears = rnd.IsInFavour(30) ? (int?)null : maxYears });

                index++;

                if (index % 100 == 0)
                {
                    db.SaveChanges();
                }
            }

            db.SaveChanges();

            index = 0;
            Console.WriteLine("Adding toys");
            for (int i = 0; i < 100000; i++)
            {
                var ageRangeIds = db.AgeRanges.Select(x => x.Id).ToList();
                var manufacturerIds = db.Manufacturers.Select(x => x.Id).ToList();
                var categoryIds = db.Categories.Select(x => x.Id).ToList();

                var categoriesCount = rnd.GenerateRandomNumber(0, 3);
                var categories = new List<Category>();
                for (int j = 0; j < categoriesCount; j++)
                {
                    categories.Add(db.Categories.Find(categoryIds[rnd.GenerateRandomNumber(0, categoryIds.Count - 1)]));
                }

                db.Toys.Add(
                    new Toy()
                        {
                            AgeRangeId = ageRangeIds[rnd.GenerateRandomNumber(0, ageRangeIds.Count - 1)],
                            Name = rnd.GenerateRandomStringWithRandomLength(5, 25),
                            Color = rnd.GenerateRandomStringWithRandomLength(5, 20),
                            ManufacturerId = manufacturerIds[rnd.GenerateRandomNumber(0, manufacturerIds.Count - 1)],
                            Price = (decimal)rnd.GenerateRandomDouble(0.3, 999.95),
                            Type = rnd.GenerateRandomStringWithRandomLength(5, 20),
                            Categories = categories
                        });
                index++;
                
                if (index%100==0)
                {
                    db.SaveChanges();
                    Console.Write(".");
                }
            }

            db.SaveChanges();
        }
Ejemplo n.º 15
0
 public DataGenerator(IRandomGenerator randomGenerator, ToyStoreEntities context, int count)
 {
     this.random = randomGenerator;
     this.db = context;
     this.count = count;
 }
Ejemplo n.º 16
0
 public ToyDataGenerator(ToyStoreEntities db, RandomData random, int count)
     : base(db, random, count)
 {
 }
        public RandomManufacturersGenerator(IRandomGenerator randomGenerator, ToyStoreEntities context, int count)
            : base(randomGenerator, context, count)
        {

        }
 public ManufacturerDataGenerator(ToyStoreEntities db, RandomData random, int count)
     : base(db, random, count)
 {
 }
Ejemplo n.º 19
0
        public RandomCategoriesGenerator(IRandomGenerator randomGenerator, ToyStoreEntities context, int count):base(randomGenerator, context, count)
        {

        }