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());
            }
        }
Esempio n. 2
0
        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();
        }