private void Execute(PersonCollection identifiers, Queue <DataGeneratorUI> queue, DataGeneratorUI current, Random r) { if (current == null) { return; } //tell form it is running Executing.Add(current); var dataGeneratorFactory = new DataGeneratorFactory(); //reset the current generator to use the seed provided current.Generator = dataGeneratorFactory.Create(current.Generator.GetType(), r); current.BeginGeneration(identifiers, _extractDirectory); //when it is complete current.Completed += () => { if (queue.Count != 0) { Execute(identifiers, queue, queue.Dequeue(), r); } Executing.Remove(current); AnnounceIfComplete(); }; }
public GenerateTestDataUI(IActivateItems activator, ICommandExecution command) : base(activator) { InitializeComponent(); var dataGeneratorFactory = new DataGeneratorFactory(); int yLoc = 0; foreach (Type t in dataGeneratorFactory.GetAvailableGenerators()) { var ui = new DataGeneratorUI(); ui.Generator = dataGeneratorFactory.Create(t, new Random()); ui.Location = new Point(0, yLoc); yLoc += ui.Height; pDatasets.Controls.Add(ui); } lblDirectory.Visible = false; EnableOrDisableGoButton(); if (command != null) { BuildHelpWorkflow(command); } helpIcon1.SetHelpText("Tutorial", "Click for tutorial", HelpWorkflow); }
/// <summary> /// Build and return object without external data /// </summary> public T Create <T>(Dictionary <string, string> parameters = null) where T : class, IDataGeneratable, new() { if (parameters != null) { throw new ArgumentException("No parameters should be defined for default builder!\r\n" + "To generate entity with parameters use the custom builder."); } return(DataGeneratorFactory.Create <T>()); }
protected DiscoveredTable CreateDataset <T>(DiscoveredDatabase db, PersonCollection people, int rows, Random r) where T : IDataGenerator { var f = new DataGeneratorFactory(); T instance = f.Create <T>(r); var dt = instance.GetDataTable(people, rows); return(db.CreateTable(typeof(T).Name, dt, null, false, this)); }
protected DiscoveredTable CreateDataset <T>(int people, int rows, Random r, out PersonCollection peopleGenerated) where T : IDataGenerator { var f = new DataGeneratorFactory(); T instance = f.Create <T>(r); peopleGenerated = new PersonCollection(); peopleGenerated.GeneratePeople(people, r); var dt = instance.GetDataTable(peopleGenerated, rows); return(DiscoveredDatabaseICanCreateRandomTablesIn.CreateTable(typeof(T).Name, dt, null, false, this)); }
/// <summary> /// Generate the new instance of Settings according to params /// </summary> /// <param name="parameters">State: new(valid) or for update</param> public T Create <T>(Dictionary <string, string> parameters = null) where T : class, IDataGeneratable, new() { Helpers.CheckParameters(parameters, true); Post post = DataGeneratorFactory.Create <Post>(); switch (parameters[ParamKeys.State].ToLower().Trim()) { case ParamValues.EntityState.Valid: break; case ParamValues.EntityState.Invalid: post.Body = null; post.Title = null; post.UserId = null; break; default: throw new NotImplementedException($"No implementation for post state: {parameters[ParamKeys.State].ToUpper()}"); } return(post as T); }
private DiscoveredTable Create <T>(DiscoveredDatabase db, PersonCollection people, Random r, ICheckNotifier notifier, int numberOfRecords, params string[] primaryKey) where T : IDataGenerator { string dataset = typeof(T).Name; notifier.OnCheckPerformed(new CheckEventArgs(string.Format("Generating {0} records for {1}", numberOfRecords, dataset), CheckResult.Success)); var factory = new DataGeneratorFactory(); //half a million biochemistry results var biochem = factory.Create(typeof(T), r); var dt = biochem.GetDataTable(people, numberOfRecords); //prune "nulls" foreach (DataRow dr in dt.Rows) { for (int i = 0; i < dt.Columns.Count; i++) { if (string.Equals(dr[i] as string, "NULL", StringComparison.CurrentCultureIgnoreCase)) { dr[i] = DBNull.Value; } } } notifier.OnCheckPerformed(new CheckEventArgs("Uploading " + dataset, CheckResult.Success)); var tbl = db.CreateTable(dataset, dt, GetExplicitColumnDefinitions <T>()); if (primaryKey.Length != 0) { notifier.OnCheckPerformed(new CheckEventArgs("Creating Primary Key " + dataset, CheckResult.Success)); var cols = primaryKey.Select(s => tbl.DiscoverColumn(s)).ToArray(); tbl.CreatePrimaryKey(5000, cols); } return(tbl); }