Switch DBType to use the fully-qualified type name rather than a simple name

This commit is contained in:
Charles Nurse
2021-05-12 10:22:17 -07:00
parent c926fa0d27
commit 92dd8354ba
15 changed files with 43 additions and 18 deletions

View File

@ -19,31 +19,36 @@ namespace Oqtane.Controllers
{
Name = "LocalDB",
FriendlyName = "Local Database",
Type = "Oqtane.Installer.Controls.LocalDBConfig, Oqtane.Client"
ControlType = "Oqtane.Installer.Controls.LocalDBConfig, Oqtane.Client",
DBType = "Oqtane.Database.SqlServer.LocalDbDatabase, Oqtane.Database.SqlServer"
},
new()
{
Name = "SqlServer",
FriendlyName = "SQL Server",
Type = "Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client"
ControlType = "Oqtane.Installer.Controls.SqlServerConfig, Oqtane.Client",
DBType = "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer"
},
new()
{
Name = "Sqlite",
FriendlyName = "Sqlite",
Type = "Oqtane.Installer.Controls.SqliteConfig, Oqtane.Client"
ControlType = "Oqtane.Installer.Controls.SqliteConfig, Oqtane.Client",
DBType = "Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite"
},
new()
{
Name = "MySQL",
FriendlyName = "MySQL",
Type = "Oqtane.Installer.Controls.MySQLConfig, Oqtane.Client"
ControlType = "Oqtane.Installer.Controls.MySQLConfig, Oqtane.Client",
DBType = "Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL"
},
new()
{
Name = "PostgreSQL",
FriendlyName = "PostgreSQL",
Type = "Oqtane.Installer.Controls.PostGreSQLConfig, Oqtane.Client"
ControlType = "Oqtane.Installer.Controls.PostGreSQLConfig, Oqtane.Client",
DBType = "Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL"
}
};
return databases;

View File

@ -191,7 +191,7 @@ namespace Oqtane.Infrastructure
{
var databases = scope.ServiceProvider.GetServices<IOqtaneDatabase>();
using (var dbc = new DbContext(new DbContextOptionsBuilder().UseOqtaneDatabase(databases.Single(d => d.Name == databaseType), connectionString).Options))
using (var dbc = new DbContext(new DbContextOptionsBuilder().UseOqtaneDatabase(databases.Single(d => d.TypeName == databaseType), connectionString).Options))
{
// create empty database if it does not exist
dbc.Database.EnsureCreated();
@ -596,7 +596,7 @@ namespace Oqtane.Infrastructure
var databaseType = _config.GetSection(SettingKeys.DatabaseSection)[SettingKeys.DatabaseTypeKey];
var connectionString = NormalizeConnectionString(_config.GetConnectionString(SettingKeys.ConnectionStringKey));
return new InstallationContext(databases.Single(d => d.Name == databaseType), connectionString);
return new InstallationContext(databases.Single(d => d.TypeName == databaseType), connectionString);
}
private string GetInstallationConfig(string key, string defaultValue)

View File

@ -84,7 +84,7 @@ namespace Oqtane.Repository
{
if (Databases != null)
{
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.Name == _databaseType), _connectionString);
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.TypeName == _databaseType), _connectionString);
}
else
{
@ -101,7 +101,7 @@ namespace Oqtane.Repository
if (Databases != null)
{
var database = Databases.Single(d => d.Name == _databaseType);
var database = Databases.Single(d => d.TypeName == _databaseType);
database.UpdateIdentityStoreTableNames(builder);
}

View File

@ -52,7 +52,7 @@ namespace Oqtane.Repository
{
if (Databases != null)
{
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.Name == databaseType), connectionString);
optionsBuilder.UseOqtaneDatabase(Databases.Single(d => d.TypeName == databaseType), connectionString);
}
else
{

View File

@ -80,13 +80,13 @@ namespace Oqtane.Repository
public IDataReader ExecuteReader(Tenant tenant, string query)
{
var db = _databases.Single(d => d.Name == tenant.DBType);
var db = _databases.Single(d => d.TypeName == tenant.DBType);
return db.ExecuteReader(tenant.DBConnectionString, query);
}
private int ExecuteNonQuery(string connectionString, string databaseType, string query)
{
var db = _databases.Single(d => d.Name == databaseType);
var db = _databases.Single(d => d.TypeName == databaseType);
return db.ExecuteNonQuery(connectionString, query);
}