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); }
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; }