Пример #1
0
        public void Setup()
        {
            TestDb.Execute(Resources.testdb_b);

            Action <MySqlClassGenerator> a = delegate(MySqlClassGenerator x)
            {
                x.Formatter.AddAlias("a", "TestAlias1");
                x.Formatter.AddAlias("AbCdEfGhIj");
                x.AddColumnCollection("TestColl", typeof(TestCollEnum), typeof(int), typeof(int), Resources.testdb_b_name,
                                      new ColumnCollectionItem[]
                {
                    ColumnCollectionItem.FromEnum(x.Formatter, "asdfA", TestCollEnum.A),
                    ColumnCollectionItem.FromEnum(x.Formatter, "asdfB", TestCollEnum.B),
                    ColumnCollectionItem.FromEnum(x.Formatter, "asdfC", TestCollEnum.C)
                });

                x.AddColumnCollection("TestCollTwo", typeof(TestCollNestedEnum), typeof(int), typeof(int), Resources.testdb_b_name,
                                      new ColumnCollectionItem[]
                {
                    ColumnCollectionItem.FromEnum(x.Formatter, "bbbbA", TestCollNestedEnum.A),
                    ColumnCollectionItem.FromEnum(x.Formatter, "bbbbB", TestCollNestedEnum.B),
                    ColumnCollectionItem.FromEnum(x.Formatter, "bbbbC", TestCollNestedEnum.C)
                });
            };

            _dbTypes      = ClassCreatorHelper.GetTableTypes(Resources.testdb_b_name, a);
            _dbProperties = ClassCreatorHelper.GetTableTypeProperties(_dbTypes);

            _conn = TestDb.Open();
        }
Пример #2
0
        static IEnumerable <ColumnCollectionItem> GetStatColumnCollectionItems(CodeFormatter formatter, StatCollectionType statCollectionType)
        {
            var columnItems = new List <ColumnCollectionItem>();

            foreach (var statType in EnumHelper <StatType> .Values)
            {
                var dbField = statType.GetDatabaseField(statCollectionType);
                var item    = ColumnCollectionItem.FromEnum(formatter, dbField, statType);
                columnItems.Add(item);
            }

            return(columnItems);
        }
Пример #3
0
        /// <summary>
        /// Gets the <see cref="ColumnCollection"/> for a given <see cref="DbColumnInfo"/>, or null if the
        /// <see cref="DbColumnInfo"/> is not part of any <see cref="ColumnCollection"/> in this table.
        /// </summary>
        /// <param name="dbColumn">The <see cref="DbColumnInfo"/> to get the <see cref="ColumnCollection"/> for.</param>
        /// <param name="item">The <see cref="ColumnCollectionItem"/> for the <paramref name="dbColumn"/> in the
        /// <see cref="ColumnCollection"/>.</param>
        /// <returns>The <see cref="ColumnCollection"/> the <see cref="DbColumnInfo"/> is part of, or null if it
        /// is not part of a <see cref="ColumnCollection"/>.</returns>
        /// <exception cref="ArgumentException">The <paramref name="dbColumn"/> matched more than one <see cref="ColumnCollection"/>.</exception>
        public ColumnCollection GetCollectionForColumn(DbColumnInfo dbColumn, out ColumnCollectionItem item)
        {
            foreach (var columnCollection in ColumnCollections)
            {
                var matches =
                    columnCollection.Columns.Where(x => x.ColumnName.Equals(dbColumn.Name, StringComparison.OrdinalIgnoreCase));

                var count = matches.Count();
                if (count == 1)
                {
                    item = matches.First();
                    return columnCollection;
                }
                else if (count > 1)
                {
                    const string errmsg = "DbColumnInfo for column `{0}` in table `{1}` matched more than one ColumnCollection!";
                    throw new ArgumentException(string.Format(errmsg, dbColumn.Name, TableName));
                }
            }

            item = default(ColumnCollectionItem);
            return null;
        }