Example #1
0
        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);
        }
Example #2
0
        //        public static string ChildOrders = "ChildOrders";
        public static void InitDatabases(Processor p)
        {
            //            p.CreateRamDB<QuickRisk>(QuickRisk);

            var keys = new DatabaseKeys(p);
            keys.Init();
        }
Example #3
0
        /*
         * 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);
        }