public static string GetDBConnectionString(DatabaseKeys dbKeys) { var trendsEnvironment = IsDevEnviroment(); switch (trendsEnvironment) { case TrendsEnvironment.Staging: if (StagingDBDicts.ContainsKey(dbKeys)) { return(StagingDBDicts[dbKeys]); } break; case TrendsEnvironment.Dev: if (DevDBDicts.ContainsKey(dbKeys)) { return(DevDBDicts[dbKeys]); } break; case TrendsEnvironment.Prod: if (ProdDBDicts.ContainsKey(dbKeys)) { return(ProdDBDicts[dbKeys]); } break; } return(string.Empty); }
// public static string ChildOrders = "ChildOrders"; public static void InitDatabases(Processor p) { // p.CreateRamDB<QuickRisk>(QuickRisk); var keys = new DatabaseKeys(p); keys.Init(); }
/* * Notes: * if in OnModelCreating can call as var dbKeys = DatabaseTools.getDatabaseDefaults(this.Database.ProviderName); * if in a migration call as var dbKeys = DatabaseTools.getDatabaseDefaults(migrationBuilder.ActiveProvider); */ /// <summary> /// Can get specific formats for different databases. Supports mssql, postgress, sqlite, and mysql. /// </summary> /// <param name="databaseProvider"></param> /// <returns></returns> public static DatabaseKeys GetDatabaseDefaults(string databaseProvider) { var dbKeys = new DatabaseKeys { dateTime = "datetime" }; switch (databaseProvider) { case "Microsoft.EntityFrameworkCore.Sqlite": case "sqlite": dbKeys.DEFAULTDATE_UPDATE = "datetime('now')"; dbKeys.SerialColumn = true; dbKeys.ProviderName = "sqlite"; dbKeys.ValueGenerationStrategy = "Sqlite:Autoincrement"; break; case "postgress": case "Npgsql.EntityFrameworkCore.PostgreSQL": dbKeys.DEFAULTDATE_UPDATE = "CURRENT_TIMESTAMP"; dbKeys.SerialColumn = NpgsqlValueGenerationStrategy.SerialColumn; dbKeys.ProviderName = "postgress"; dbKeys.ValueGenerationStrategy = "Npgsql:ValueGenerationStrategy"; dbKeys.dateTime = "timestamp"; break; case "mysql": case "MySql.Data.EntityFrameworkCore": dbKeys.DEFAULTDATE_UPDATE = "CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"; dbKeys.DEFAULTDATE_CREATE = "CURRENT_TIMESTAMP"; dbKeys.UpdateDateTrigger = false; dbKeys.SerialColumn = true; dbKeys.ProviderName = "mysql"; dbKeys.ValueGenerationStrategy = "MySQL:AutoIncrement"; break; case "sqlserver": default: dbKeys.DEFAULTDATE_UPDATE = "(getdate())"; dbKeys.SerialColumn = SqlServerValueGenerationStrategy.IdentityColumn; dbKeys.ProviderName = "sqlserver"; dbKeys.ValueGenerationStrategy = "SqlServer:ValueGenerationStrategy"; break; } if (string.IsNullOrEmpty(dbKeys.DEFAULTDATE_CREATE)) { dbKeys.DEFAULTDATE_CREATE = dbKeys.DEFAULTDATE_UPDATE; } return(dbKeys); }