private IDetailParameterEnhancer hack_GetDetail(IGeneratorBuilder builder, IDetailParameterEnhancer detail) { if (builder.GetType().Name == "CombinerBuilder" && ((CombinerBuilder)builder).BuilderCount != 1) { // in the current version it uniquely identifies the mountain builder return(detail); } switch (detail.GetType().Name) { case "LowDetail": return(new DetailEnhancer(1, 4, .40f, 2)); case "MediumDetail": return(new DetailEnhancer(1, 5, .45f, 2)); case "HighDetail": return(new DetailEnhancer(1, 6, .50f, 2)); default: throw new ArgumentOutOfRangeException(); } }
public FlatProfile(IGeneratorBuilder builder) { _builder = builder; }
public CanyonProfile(IGeneratorBuilder builder) { _builder = builder; }
public Column GenerateDataForColumn(Column column, object[] data, HashSet <string> existingColumnData) { if (column.GeneratorType != null && column.GeneratorType != SystemConstants.DefaultGuid) { List <IGeneratorInfo> infos = ObjectLocator.GetAllInstances <IGeneratorInfo>(); List <IGeneratorBuilder> builders = ObjectLocator.GetAllInstances <IGeneratorBuilder>(); Type generatorType = infos.Where(x => x.Id == column.GeneratorType.Value).First().Type; IGeneratorBuilder builder = builders.Where(x => x.GeneratorId == column.GeneratorType.Value).First(); var generator = ObjectLocator.GetInstance(generatorType); List <string> generatedData = null; if (generator != null) { generatedData = builder.BuildGenerator(generator, data, existingColumnData); } #region Old Swtich Based Code //switch (column.GeneratorType) //{ // case GeneratorTypes.AccountNumber: // generatedData = ObjectLocator.GetInstance<IAccountNumberGenerator>().GenerateAccountNumbers((double)data[0]); // break; // case GeneratorTypes.Address: // generatedData = ObjectLocator.GetInstance<IAddressGenerator>().GenerateAddressLine1s((double)data[0]); // break; // case GeneratorTypes.Character: // bool charBool = false; // try // { // charBool = (bool)data[1]; // } // catch { } // var characters = ObjectLocator.GetInstance<ICharacterGenerator>().GenerateRandomCharacters((double)data[0], charBool); // generatedData = new List<string>(); // foreach (var c in characters) // { // generatedData.Add(c.ToString()); // } // break; // case GeneratorTypes.City: // generatedData = ObjectLocator.GetInstance<ICityGenerator>().GenerateCityNames((double)data[0]); // break; // case GeneratorTypes.CompanyName: // generatedData = ObjectLocator.GetInstance<ICompanyNameGenerator>().GenerateCompanyNames((double)data[0], existingColumnData); // break; // case GeneratorTypes.Country: // generatedData = ObjectLocator.GetInstance<ICountryGenerator>().GenerateCountryNames((double)data[0]); // break; // case GeneratorTypes.Date: // var dates = ObjectLocator.GetInstance<IDateGenerator>().GenerateDate((double)data[0], (DateTime)data[1], (DateTime)data[2]); // generatedData = new List<string>(); // foreach (var d in dates) // { // generatedData.Add(d.ToString()); // } // break; // case GeneratorTypes.EmailAddress: // generatedData = ObjectLocator.GetInstance<IEmailAddressGenerator>().GenerateEmailAddresses((double)data[0], existingColumnData); // break; // case GeneratorTypes.FirstName: // generatedData = ObjectLocator.GetInstance<IFirstNameGenerator>().GenerateFirstNames((double)data[0]); // break; // case GeneratorTypes.LastName: // generatedData = ObjectLocator.GetInstance<ILastNameGenerator>().GenerateLastNames((double)data[0]); // break; // case GeneratorTypes.Login: // generatedData = ObjectLocator.GetInstance<ILoginNameGenerator>().GenerateLoginNames((double)data[0]); // break; // case GeneratorTypes.Number: // var numbers = ObjectLocator.GetInstance<INumberGenerator>().GenerateRandomNumbers(double.Parse(data[0].ToString()), int.Parse(data[1].ToString()), int.Parse(data[2].ToString())); // generatedData = new List<string>(); // foreach (var n in numbers) // { // generatedData.Add(n.ToString()); // } // break; // case GeneratorTypes.PhoneNumber: // bool phoneBool = false; // try // { // phoneBool = (bool)data[1]; // } // catch { } // generatedData = ObjectLocator.GetInstance<IPhoneNumberGenerator>().GeneratePhoneNumbers((double)data[0], phoneBool); // break; // case GeneratorTypes.SSN: // generatedData = ObjectLocator.GetInstance<ISsnGenerator>().GenerateSocialSecurityNumbers((double)data[0]); // break; // case GeneratorTypes.State: // generatedData = ObjectLocator.GetInstance<IStateGenerator>().GenerateStateNames((double)data[0]); // break; // case GeneratorTypes.String: // bool stringBool1 = false; // try // { // stringBool1 = (bool)data[3]; // } // catch { } // bool stringBool2 = false; // try // { // stringBool2 = (bool)data[4]; // } // catch { } // generatedData = ObjectLocator.GetInstance<IStringGenerator>().GenerateRandomStrings(double.Parse(data[0].ToString()), int.Parse(data[1].ToString()), int.Parse(data[2].ToString()), stringBool1, stringBool2, existingColumnData); // break; // case GeneratorTypes.Url: // bool data2 = false; // try // { // data2 = (bool)data[1]; // } // catch { } // generatedData = ObjectLocator.GetInstance<IUrlGenerator>().GenerateUrls((double)data[0], data2, existingColumnData); // break; // case GeneratorTypes.ZipCode: // bool data1 = false; // try // { // data1 = (bool)data[1]; // } // catch { } // generatedData = ObjectLocator.GetInstance<IZipCodeGenerator>().GenerateZipCodes((double)data[0], data1); // break; // case GeneratorTypes.Clear: // generatedData = new List<string>(); // break; // case GeneratorTypes.FullName: // bool fullNameBool1 = false; // try // { // fullNameBool1 = (bool)data[1]; // } // catch { } // bool fullNameBool2 = false; // try // { // fullNameBool2 = (bool)data[2]; // } // catch { } // generatedData = ObjectLocator.GetInstance<IFullNameGenerator>().GenerateFullNames((double)data[0], fullNameBool1, fullNameBool2); // break; // case GeneratorTypes.Symbol: // generatedData = ObjectLocator.GetInstance<ISymbolGenerator>().GenerateSymbols((double)data[0], existingColumnData); // break; // case GeneratorTypes.SecurityName: // generatedData = ObjectLocator.GetInstance<ISecurityNameGenerator>().GenerateSecurityNames((double)data[0], existingColumnData); // break; // case GeneratorTypes.Hex: // generatedData = ObjectLocator.GetInstance<IHexGenerator>().GenerateHexNumbers((double)data[0]); // break; // case GeneratorTypes.Guid: // generatedData = ObjectLocator.GetInstance<IGuidGenerator>().GenerateGuids((double)data[0]); // break; // case GeneratorTypes.Token: // generatedData = ObjectLocator.GetInstance<ITokenReplacementGenerator>().GenerateReplacedStrings((double)data[0], (string)data[1], existingColumnData); // break; // default: // throw new InvalidOperationException(string.Format("Cannot generate data for type {0}", column.GeneratorType)); //} #endregion Old Swtich Based Code column.Data = generatedData; } return(column); }
public string GeneratePart(System.Random random, string type = null) { var availableTypes = Source.Keys.ToList(); if (type == null || !availableTypes.Contains(type)) { type = availableTypes[random.Next(availableTypes.Count)]; } var selectedMode = Mode; if (selectedMode == Mode.MarkovOrItem) { selectedMode = (Mode)random.Next(2); } IGenerator generator; if (!m_generators.TryGetValue(selectedMode + type, out generator)) { IGeneratorBuilder generatorBuilder = null; switch (selectedMode) { case Mode.Item: { generatorBuilder = new ItemGeneratorBuilder(random); break; } case Mode.Markov: { generatorBuilder = new MarkovGeneratorBuilder(MarkovOrder ?? 2, random); break; } } generatorBuilder.Teach(Source[type]); generator = generatorBuilder.ToGenerator(); m_generators[selectedMode + type] = generator; } switch (selectedMode) { case Mode.Item: { return(generator.Generate()); } case Mode.Markov: { string result = null; // Try 10 times for a reasonable length. for (var x = 0; x < 10; x++) { result = generator.Generate(); if (result.Length < (MaxLength ?? 10) && result.Length > 2) { break; } } return(result); } } return(null); }
public GeneratorDirector(IGeneratorBuilder builder) { Builder = builder; }
public RockyMountainProfile(IGeneratorBuilder builder) { _builder = builder; }
public HillProfile(IGeneratorBuilder builder) { _builder = builder; }
public CombinerBuilder Add(IGeneratorBuilder generatorBuilder) { builders.Add(generatorBuilder); return(this); }