示例#1
0
        private List <DbmlEnum.Item> GetEnumItems(TableSchema tableSchema, DbmlEnum.Enum existingEnum)
        {
            List <DbmlEnum.Item> itemList = new List <DbmlEnum.Item>();

            string primaryKey        = tableSchema.PrimaryKey.MemberColumns[0].Name;
            string nameColumn        = settings.GetEnumNameColumnName(tableSchema);
            string descriptionColumn = settings.GetEnumDescriptionColumnName(tableSchema);

            DataTable table = tableSchema.GetTableData();

            if (table.Rows.Count == 0)
            {
                throw new ApplicationException(string.Format(
                                                   "Table '{0}' was identified as an enum table but does not contain any rows. Please insert rows into the table or ignore the table.",
                                                   tableSchema.FullName));
            }

            foreach (DataRow row in table.Rows)
            {
                long          value         = Int64.Parse(row[primaryKey].ToString());
                DbmlEnum.Item existingValue = existingEnum.Items.Where(v => v.Value == value).FirstOrDefault()
                                              ?? new DbmlEnum.Item();

                string description = (table.Columns.Contains(descriptionColumn))
                    ? row[descriptionColumn] as String
                    : null;

                itemList.Add(new DbmlEnum.Item
                {
                    Name               = StringUtil.ToPascalCase(row[nameColumn].ToString()),
                    Value              = value,
                    Description        = description ?? existingValue.Description,
                    DataContractMember = existingValue.DataContractMember
                });
            }

            return(itemList);
        }
示例#2
0
        private List<DbmlEnum.Item> GetEnumItems(TableSchema tableSchema, DbmlEnum.Enum existingEnum)
        {
            List<DbmlEnum.Item> itemList = new List<DbmlEnum.Item>();

            string primaryKey = tableSchema.PrimaryKey.MemberColumns[0].Name;
            string nameColumn = settings.GetEnumNameColumnName(tableSchema);
            string descriptionColumn = settings.GetEnumDescriptionColumnName(tableSchema);

            DataTable table = tableSchema.GetTableData();
            if (table.Rows.Count == 0)
                throw new ApplicationException(string.Format(
                    "Table '{0}' was identified as an enum table but does not contain any rows. Please insert rows into the table or ignore the table.",
                    tableSchema.FullName));

            foreach (DataRow row in table.Rows)
            {
                long value = Int64.Parse(row[primaryKey].ToString());
                DbmlEnum.Item existingValue = existingEnum.Items.Where(v => v.Value == value).FirstOrDefault()
                    ?? new DbmlEnum.Item();

                string description = (table.Columns.Contains(descriptionColumn))
                    ? row[descriptionColumn] as String
                    : null;

                itemList.Add(new DbmlEnum.Item
                                 {
                                     Name = StringUtil.ToPascalCase(row[nameColumn].ToString()),
                                     Value = value,
                                     Description = description ?? existingValue.Description,
                                     DataContractMember = existingValue.DataContractMember
                                 });
            }

            return itemList;
        }