Пример #1
0
        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;
        }
Пример #2
0
        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>();
        }
Пример #3
0
        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;
        }