public static DotNetType GetDotNetType(string databaseTypeName, ColumnInfo column) { DotNetType type; DotNetType processedType = null; string processedName; switch (databaseTypeName) { case "SQLServer2005": case "SQLServerExpress": case "SQLCE": type = SqlServerTypes.GetDotNetType(column.TypeName, DatabaseTypes.SqlServer); processedName = Scripts.PostProcessSqlServerType(column, type.Name); break; case "Oracle": type = OracleTypes.GetDotNetType(column.TypeName, DatabaseTypes.Oracle); processedName = Scripts.PostProcessOracleType(column, type.Name); break; case "MySQL": type = MySqlTypes.GetDotNetType(column.TypeName, DatabaseTypes.MySql); processedName = Scripts.PostProcessMySqlType(column, type.Name); break; case "PostgreSQL": type = PostgreSqlTypes.GetDotNetType(column.TypeName, DatabaseTypes.PostgreSql); processedName = Scripts.PostProcessPostgreSqlType(column, type.Name); break; case "Firebird": type = FirebirdTypes.GetDotNetType(column.TypeName, DatabaseTypes.Firebird); processedName = Scripts.PostProcessFirebirdType(column, type.Name); break; case "SQLite": type = SQLiteTypes.GetDotNetType(column.TypeName, DatabaseTypes.SQLite); processedName = Scripts.PostProcessSQLiteType(column, type.Name); break; default: throw new NotImplementedException("Database type not handled yet: " + databaseTypeName); } processedType = DotNetTypes.SingleOrDefault(t => t.Name.ToLowerInvariant() == processedName.ToLowerInvariant()); if (processedType == null) { throw new Exception(string.Format("Post-processing script returned null for type [{0}]", type.Name)); } return(processedType); }
private static void AddMap(List <DatabaseTypeMap> mapCollection, XmlNodeList nodes) { foreach (XmlNode node in nodes) { string typeName = node.Attributes["type"].Value; string dotnetTypeName = node.Attributes["dotnet"].Value; DotNetType dotnetType = DotNetTypes.SingleOrDefault(t => t.Name.ToLowerInvariant() == dotnetTypeName.ToLowerInvariant()); DatabaseTypeMap map = mapCollection.SingleOrDefault(c => c.TypeName.ToLowerInvariant() == typeName.ToLowerInvariant()); if (map != null) { map.DotNetType = dotnetType; } else { mapCollection.Add(new DatabaseTypeMap(typeName, dotnetType)); } } }
public static string GetDefaultDatabaseType(this List <DatabaseTypeMap> maps, Utility.DatabaseTypes dbType, string dotnetTypeName) { DotNetType dotNetType = GetDotNetTypeinternalFromDotNetType(maps, dotnetTypeName, dbType); if (dotNetType == null) { return(null); } switch (dbType) { case Utility.DatabaseTypes.Firebird: return(dotNetType.FirebirdName); case Utility.DatabaseTypes.MySql: return(dotNetType.MySqlName); case Utility.DatabaseTypes.Oracle: return(dotNetType.OracleName); case Utility.DatabaseTypes.PostgreSql: return(dotNetType.PostgreSqlName); case Utility.DatabaseTypes.SqlServer: return(dotNetType.SqlServerName); default: throw new NotImplementedException("Database type not handled yet: " + dbType.ToString()); } }
private string GetDisplayTextForTypeUsages(string heading, IEnumerable<DatabaseTypeMap> maps, DotNetType dotNetType) { var filteredMaps = maps.Where(s => s.DotNetType == dotNetType); if (filteredMaps.Count() > 0) { StringBuilder sb = new StringBuilder(); sb.AppendLine(string.Format("{0}{0}{0}<b>{1}</b>", SPACE, heading)); foreach (DatabaseTypeMap map in filteredMaps) sb.AppendLine(string.Format("<br/>{0}{0}{0}{0}{1}", SPACE, map.TypeName)); sb.AppendLine(string.Format("<br/><br/>", heading)); return sb.ToString(); } return ""; }
private void dataGridViewCSharp_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { if (BusyPopulating) return; DataGridView grid = (DataGridView)sender; for (int i = 0; i < e.RowCount; i++) { DataGridViewRow row = grid.Rows[e.RowIndex + i - 1]; DotNetType dotnetType = new DotNetType(); Utility.DotNetTypes.Add(dotnetType); row.Tag = dotnetType; } }
private string GetDisplayText(DotNetType dotNetType) { if (dotNetType == null) return ""; return dotNetType.Name; }
public static string GetVbType(this List <DatabaseTypeMap> maps, string typeName, Utility.DatabaseTypes databaseType) { DotNetType t = GetDotNetTypeinternalFromDatabaseType(maps, typeName, databaseType); return(t == null ? null : t.VbName); }
private void buttonOk_Click(object sender, EventArgs e) { if (checkBoxExisting.Checked && comboBoxCSharpTypes.SelectedItem == null) { MessageBox.Show(this, "Please select a .Net type.", "Missing value", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (checkBoxNew.Checked && (string.IsNullOrWhiteSpace(textBoxDotNetType.Text) || string.IsNullOrWhiteSpace(textBoxCSharpType.Text))) { MessageBox.Show(this, "You need to enter .Net and C# types.", "Missing values", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DotNetType dotnetType = null; if (checkBoxExisting.Checked) { dotnetType = Utility.DotNetTypes.SingleOrDefault(testc => testc.Name == comboBoxCSharpTypes.Text); } else { Utility.DotNetTypes.SingleOrDefault(t => t.Name.ToLowerInvariant() == textBoxDotNetType.Text.Trim().ToLowerInvariant()); if (dotnetType == null) { dotnetType = new DotNetType() { Name = textBoxDotNetType.Text.Trim(), CSharpName = textBoxCSharpType.Text.Trim() }; ArchAngel.Interfaces.ProjectOptions.TypeMappings.Utility.DotNetTypes.Add(dotnetType); } } List <DatabaseTypeMap> maps; switch (Database) { case Utility.DatabaseTypes.Firebird: maps = Utility.FirebirdTypes; break; case Utility.DatabaseTypes.MySql: maps = Utility.MySqlTypes; break; case Utility.DatabaseTypes.Oracle: maps = Utility.OracleTypes; break; case Utility.DatabaseTypes.PostgreSql: maps = Utility.PostgreSqlTypes; break; case Utility.DatabaseTypes.SqlServer: maps = Utility.SqlServerTypes; break; case Utility.DatabaseTypes.SQLite: maps = Utility.SQLiteTypes; break; default: throw new NotImplementedException("Database type not handled yet: " + Database.ToString()); } DatabaseTypeMap newDBType = new DatabaseTypeMap("", null); newDBType.TypeName = labelDatabaseType.Text; newDBType.DotNetType = dotnetType; maps.Add(newDBType); DotNetType = dotnetType; Utility.SaveSettings(); Close(); }
private static void LoadSettings(string xml) { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); foreach (XmlNode node in doc.SelectNodes(@"type-maps/dotnet-types/dotnet")) { string name = node.Attributes["name"].Value; string csharpType = node.Attributes["csharp"].Value; string vbType = node.Attributes["vb"].Value; string sqlServer = node.Attributes["sqlserver"].Value; string oracle = node.Attributes["oracle"].Value; string mysql = node.Attributes["mysql"].Value; string postgresql = node.Attributes["postgresql"].Value; string firebird = node.Attributes["firebird"].Value; string sqlite = node.Attributes["sqlite"] != null ? node.Attributes["sqlite"].Value : ""; DotNetType dotNetType = DotNetTypes.SingleOrDefault(u => u.Name.ToLowerInvariant() == name.ToLowerInvariant()); if (dotNetType != null) { dotNetType.CSharpName = csharpType; dotNetType.VbName = csharpType; dotNetType.SqlServerName = sqlServer; dotNetType.OracleName = oracle; dotNetType.MySqlName = mysql; dotNetType.PostgreSqlName = postgresql; dotNetType.FirebirdName = firebird; dotNetType.SQLiteName = sqlite; } else { DotNetTypes.Add(new DotNetType(name, csharpType, vbType, sqlServer, oracle, mysql, postgresql, firebird, sqlite)); } } AddMap(SqlServerTypes, doc.SelectNodes(@"type-maps/sql-server-maps/map")); AddMap(OracleTypes, doc.SelectNodes(@"type-maps/oracle-maps/map")); AddMap(MySqlTypes, doc.SelectNodes(@"type-maps/mysql-maps/map")); AddMap(PostgreSqlTypes, doc.SelectNodes(@"type-maps/postgresql-maps/map")); AddMap(FirebirdTypes, doc.SelectNodes(@"type-maps/firebird-maps/map")); AddMap(SQLiteTypes, doc.SelectNodes(@"type-maps/sqlite-maps/map")); if (doc.SelectSingleNode(@"type-maps/scripts/sqlserver") != null) { PostProcessSciptSqlServer = doc.SelectSingleNode(@"type-maps/scripts/sqlserver").InnerText; } if (doc.SelectSingleNode(@"type-maps/scripts/oracle") != null) { PostProcessSciptOracle = doc.SelectSingleNode(@"type-maps/scripts/oracle").InnerText; } if (doc.SelectSingleNode(@"type-maps/scripts/mysql") != null) { PostProcessSciptMySql = doc.SelectSingleNode(@"type-maps/scripts/mysql").InnerText; } if (doc.SelectSingleNode(@"type-maps/scripts/postgresql") != null) { PostProcessSciptPostgreSql = doc.SelectSingleNode(@"type-maps/scripts/postgresql").InnerText; } if (doc.SelectSingleNode(@"type-maps/scripts/firebird") != null) { PostProcessSciptFirebird = doc.SelectSingleNode(@"type-maps/scripts/firebird").InnerText; } if (doc.SelectSingleNode(@"type-maps/scripts/sqlite") != null) { PostProcessSciptSQLite = doc.SelectSingleNode(@"type-maps/scripts/sqlite").InnerText; } }