public ToyGeneratorsFactory(IRandomDataGenerator random, ILogger logger, ToyStoreEntities databaseContext, int checkPointFrequency = 1000) { this.random = random; this.logger = logger; this.databaseContext = databaseContext; this.checkPointFrequency = checkPointFrequency; }
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()); } }
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(); }
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"); }
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(); }
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(); } }
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; }
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; }
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(); }
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; }
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(); }
public DataGenerator(IRandomGenerator randomGenerator, ToyStoreEntities context, int count) { this.random = randomGenerator; this.db = context; this.count = count; }
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) { }
public RandomCategoriesGenerator(IRandomGenerator randomGenerator, ToyStoreEntities context, int count):base(randomGenerator, context, count) { }