public static IEnumerable<Personality> GetDBPersonalities(string connectionString) { IEnumerable<Personality> output = null; var sql = new SqlSelectStatement(connectionString); sql.Select("Name") .Select("Id") .From("dbo.BZ_Personality"); output = sql.ExecuteComplex<Personality>(); return output; }
public static IEnumerable<Company> GenerateCompanies(string connectionString, int gameId, int numCompanies = -1) { var insert = new SqlInsertStatement(connectionString); insert.InsertInto("dbo.BZ_Company") .Column("GameId", gameId) .Column("Name") .Column("Money") .Column("InitialAccuracy"); if(numCompanies < 0) { numCompanies = Utilities.GetRandomInt(1, 5); } for (var index = 0; index < numCompanies; index++) { insert.Values() .Value("Name", Utilities.GetRandomString(16).Replace("'", "''")) .Value("Money", Utilities.GetRandomDecimal()) .Value("InitialAccuracy", Utilities.GetRandomDecimal()); } insert.Execute(); var sql = new SqlSelectStatement(connectionString); sql.Select("Id") .Select("Name") .Select("Money") .Select("InitialAccuracy") .Select("UserId") .From("dbo.BZ_Company") .WhereEquals("GameId", gameId); return sql.ExecuteComplex<Company>(); }
public static IEnumerable<Person> GeneratePeople(string connectionString, int gameId, int count = 1) { var personInsert = new SqlInsertStatement(connectionString) .InsertInto("dbo.BZ_Person") .Column("GameId", gameId) .Column("GenderId") .Column("FirstName") .Column("LastName") .Column("Birthday") .Column("RetirementDate") .Column("PersonalityId", 1); for (var index = 0; index < count; index++) { var gender = (int)Utilities.GetRandomValue(Gender.None); var first = Utilities.GetRandomString(16).Replace("'", "''"); var last = Utilities.GetRandomString(16).Replace("'", "''"); var birthday = Utilities.GetRandomDate(); var retirement = birthday.AddYears(Utilities.GetRandomInt(65, 85)); var intensity = Utilities.GetRandomDecimal(0, 1); personInsert.Values() .Value("GenderId", gender) .Value("FirstName", first) .Value("LastName", last) .Value("Birthday", birthday) .Value("RetirementDate", retirement); } personInsert.Execute(); var select = new SqlSelectStatement(connectionString); select.Select("Id") .Select("GenderId") .Select("FirstName") .Select("LastName") .Select("Birthday") .From("BZ_Person") .WhereEquals("GameId", gameId); var output = select.ExecuteComplex<Person>(); var skillIds = new SqlSelectStatement(connectionString) .Select("Id") .From("dbo.BZ_Skill_Definition") .Execute<int>(); var skillInsert = new SqlInsertStatement(connectionString) .InsertInto("dbo.BZ_Person_Skill") .Column("PersonId") .Column("SkillDefinitionId") .Column("Value") .Column("LearnRate") .Column("ForgetRate"); var skillsProperty = typeof(Person).GetProperty("Skills"); foreach (var person in output) { var remainingSkillIds = new List<int>(skillIds); var skills = new List<Skill>(); var skillCount = Utilities.GetRandomInt(1, remainingSkillIds.Count); while (skillCount-- > 0) { var skill = new Skill { ForgetRate = Utilities.GetRandomDecimal(0, 10), LearnRate = Utilities.GetRandomDecimal(0, 10), Value = Utilities.GetRandomDecimal(0, 255), SkillDefinition = new SkillDefinition { Id = (byte)remainingSkillIds.Random() } }; remainingSkillIds.Remove(skill.SkillDefinition.Id); skillInsert.Values() .Value("PersonId", person.Id) .Value("SkillDefinitionId", skill.SkillDefinition.Id) .Value("Value", skill.Value) .Value("LearnRate", skill.LearnRate) .Value("ForgetRate", skill.ForgetRate); skills.Add(skill); } skillsProperty.SetValue(person, skills); } skillInsert.Execute(); return output; }