public static string PatchConnectionString(string databaseName, string connectionString)
        {
            ConnectionStringParser helper = new ConnectionStringParser(connectionString);

            helper.RemovePartByName("Initial Catalog");
            return(string.Format("Initial Catalog={0};{1}", databaseName, helper.GetConnectionString()));
        }
示例#2
0
        private string RemovePassword(string connectionString)
        {
            if (String.IsNullOrEmpty(connectionString))
            {
                return(connectionString);
            }
            var parser = new ConnectionStringParser(connectionString);

            parser.RemovePartByName("Password");
            parser.RemovePartByName("Jet OLEDB:Database Password");
            return(parser.GetConnectionString());
        }
示例#3
0
            static string GetConnectionString(XafApplication xafApplication)
            {
                if (!string.IsNullOrEmpty(xafApplication.ConnectionString))
                {
                    return(xafApplication.ConnectionString);
                }
                if (!Environment.Is64BitProcess)
                {
                    return(XpoDefault.ConnectionString);
                }
                var connectionStringParser = new ConnectionStringParser(XpoDefault.ActiveConnectionString);

                connectionStringParser.UpdatePartByName("Provider", "Microsoft.ACE.OLEDB.12.0");
                return(connectionStringParser.GetConnectionString());
            }
示例#4
0
        public async Task ItWorks()
        {
            var name    = TestConfig.GetName("namespace");
            var conn    = new ConnectionStringParser(AsbTestConfig.ConnectionString);
            var newConn = new ConnectionStringParser($"{conn.Endpoint}{name}", conn.SharedAccessKeyName, conn.SharedAccessKey, conn.EntityPath);

            using (var activator = new BuiltinHandlerActivator())
            {
                Configure.With(activator)
                .Transport(t => t.UseAzureServiceBus(newConn.GetConnectionString(), "test-queue"))
                .Start();

                await Task.Delay(TimeSpan.FromSeconds(3));
            }
        }
示例#5
0
        private void ExecuteNonQuery(string text, int timeout = 30)
        {
            var parser = new ConnectionStringParser(XpandModuleBase.ConnectionString);

            parser.RemovePartByName("xpodatastorepool");
            using (var connection = new SqlConnection(parser.GetConnectionString())){
                connection.Open();
                using (var dbCommand = connection.CreateCommand()){
                    dbCommand.CommandTimeout = timeout;
                    dbCommand.CommandText    = text;
                    dbCommand.ExecuteNonQuery();
                }
            }

            Tracing.Tracer.LogValue(GetType().Namespace, text);
        }
示例#6
0
        private static void DropSqlServerDatabase(ConnectionStringSettings connectionStringSettings)
        {
            DTE.WriteToOutput("Attempting connection with " + connectionStringSettings.ConnectionString);
            var parser = new ConnectionStringParser(connectionStringSettings.ConnectionString.ToLower());

            parser.RemovePartByName("xpoprovider");
            var database = parser.GetPartByName("initial catalog");

            parser.RemovePartByName("initial catalog");
            using var connection = new SqlConnection(parser.GetConnectionString());
            connection.Open();
            using SqlCommand sqlCommand = connection.CreateCommand();
            sqlCommand.CommandText      = $"ALTER DATABASE [{database}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE";
            sqlCommand.ExecuteNonQuery();
            sqlCommand.CommandText = $"DROP DATABASE [{database}]";
            sqlCommand.ExecuteNonQuery();
            DTE.WriteToOutput(database + " dropped successfully");
        }
        /// <summary>
        /// Инициализация подключения к базе данных PostgreSQL
        /// </summary>
        /// <param name="app"></param>
        /// <param name="connectionString">Строка подключения к базе данных</param>
        /// <param name="autoCreateOption"></param>
        /// <param name="assemblies"></param>
        /// <returns></returns>
        public static IApplicationBuilder UseDbXpoPostgres(this IApplicationBuilder app, string connectionString, AutoCreateOption autoCreateOption, params Assembly[] assemblies)
        {
            if (string.IsNullOrWhiteSpace(connectionString))
            {
                throw new ArgumentNullException(nameof(connectionString));
            }
            var parser = new ConnectionStringParser(connectionString);
            var dbType = parser.GetPartByName("XpoProvider");

            if (string.IsNullOrWhiteSpace(dbType))
            {
                parser.RemovePartByName("XpoProvider");
                parser.AddPart("XpoProvider", "Postgres");
            }
            var init = new XpoInitializer(parser.GetConnectionString(), autoCreateOption, assemblies);

            init.Init();
            return(app);
        }
示例#8
0
        private static bool DbExist(ConnectionStringSettings connectionStringSettings)
        {
            var parser   = new ConnectionStringParser(connectionStringSettings.ConnectionString.ToLower());
            var database = parser.GetPartByName("initial catalog");

            parser.RemovePartByName("initial catalog");
            parser.RemovePartByName("xpoprovider");
            DTE.WriteToOutput("ConnectionStrings name:" + connectionStringSettings.Name + " data source: " + parser.GetPartByName("data source"));
            using (var connection = new SqlConnection(parser.GetConnectionString())) {
                connection.Open();
                object result;
                using (var sqlCommand = connection.CreateCommand()) {
                    sqlCommand.CommandText = $"SELECT database_id FROM sys.databases WHERE Name = '{database}'";
                    result = sqlCommand.ExecuteScalar();
                }
                var    exists  = result != null && int.Parse(result + "") > 0;
                string doesNot = exists ? null : " does not";
                DTE.WriteToOutput("Database " + database + doesNot + " exists");
                return(exists);
            }
        }
示例#9
0
        string ParseConnectionString(TestDatabase database)
        {
            string connString;

            if (!string.IsNullOrEmpty(database.ConnectionString))
            {
                var helper = new ConnectionStringParser(database.ConnectionString);
                helper.RemovePartByName("DatabaseName");
                helper.RemovePartByName("DBN");
                helper.RemovePartByName("DatabaseFile");
                helper.RemovePartByName("DBF");
                connString = helper.GetConnectionString();
            }
            else
            {
                var uid = !string.IsNullOrEmpty(database.Login?.UserID) ? database.Login.UserID : "dba";
                var pwd = !string.IsNullOrEmpty(database.Login?.Password) ? database.Login.Password : "******";
                connString = $"eng={database.Server};uid={uid};pwd={pwd};";
            }
            return("DBN=utility_db;" + connString);
        }
        //public const string Databases = "CountableSystem;CountableSystem2";
        public static void UpdateDatabaseName(XafApplication application, string databaseName)
        {
            ConnectionStringParser helper = new ConnectionStringParser(application.ConnectionString);
            var conection = helper.GetConnectionString();

            //if MSSqlServer
            if (conection.Contains("MSSqlServer"))
            {
                helper.RemovePartByName("Initial Catalog");
                application.ConnectionString = string.Format("Initial Catalog={0};{1}", databaseName, helper.GetConnectionString());
            }//if MysqlServer,dudas con lo del server
            else if (conection.Contains("MySql"))
            {
                helper.RemovePartByName("Database");
                application.ConnectionString = string.Format("Database={0};{1}", databaseName, helper.GetConnectionString());
            }//SQL Server ,dudas con lo del server
            else if (conection.Contains("Postgres"))
            {
                helper.RemovePartByName("Database");
                application.ConnectionString = string.Format("Database={0};{1}", databaseName, helper.GetConnectionString());
            }
        }
示例#11
0
        string UtilityConnString(TestDatabase database)
        {
            string connString;

            if (!string.IsNullOrEmpty(database.ConnectionString))
            {
                var helper = new ConnectionStringParser(database.ConnectionString);
                helper.RemovePartByName("DatabaseName");
                helper.RemovePartByName("DBN");
                helper.RemovePartByName("DatabaseFile");
                helper.RemovePartByName("DBF");
                connString = helper.GetConnectionString();
            }
            else
            {
                string uid;
                string pwd;
                if (database.Login != null && !string.IsNullOrEmpty(database.Login.UserID))
                {
                    uid = database.Login.UserID;
                }
                else
                {
                    uid = "dba";
                }
                if (database.Login != null && !string.IsNullOrEmpty(database.Login.Password))
                {
                    pwd = database.Login.Password;
                }
                else
                {
                    pwd = "sql";
                }
                connString = string.Format("eng={0};uid={1};pwd={2};", database.Server, uid, pwd);
            }
            return("DBN=utility_db;" + connString);
        }
        /// <summary>
        /// Создает поставщика данных на основе строки соединения
        /// </summary>
        /// <param name="connectionString">Строка соединения с поставщиком данных</param>
        /// <param name="autoCreateOption">Опция автосоздания структуры базы данных</param>
        /// <param name="objectsToDisposeOnDisconnect">Объекты, требующие удаления после отключения соединения</param>
        /// <returns>Экземпляр поставщика данных OracleConnectionProviderEx</returns>
        public static new IDataStore CreateProviderFromString(string connectionString, AutoCreateOption autoCreateOption, out IDisposable[] objectsToDisposeOnDisconnect)
        {
            // Файл для записи скрипта
            string scriptPath = null;
            UpdateSchemaOptions updateOptions = UpdateSchemaOptions.Default;
            bool? insensitive = null;
            string indexTablespace = null;
            ConnectionStringParser parser = new ConnectionStringParser(connectionString);
            if (parser.PartExists(ScriptParameterName))
            {
                scriptPath = parser.GetPartByName(ScriptParameterName);
                parser.RemovePartByName(ScriptParameterName);
                connectionString = parser.GetConnectionString();
            }

            // Опции обновления
            if (parser.PartExists(UpdateOptionsParameterName))
            {
                updateOptions = (UpdateSchemaOptions)Convert.ToInt32(parser.GetPartByName(UpdateOptionsParameterName));
                parser.RemovePartByName(UpdateOptionsParameterName);
                connectionString = parser.GetConnectionString();
            }

            // Регистронезависимость в условиях
            if (parser.PartExists(InsesnsitiveParameterName))
            {
                insensitive = Convert.ToBoolean(parser.GetPartByName(InsesnsitiveParameterName));
                parser.RemovePartByName(InsesnsitiveParameterName);
                connectionString = parser.GetConnectionString();
            }

            // Табличное пространство для индексов
            if (parser.PartExists(IndexTablespaceParameterName))
            {
                indexTablespace = parser.GetPartByName(IndexTablespaceParameterName);
                parser.RemovePartByName(IndexTablespaceParameterName);
                connectionString = parser.GetConnectionString();
            }

            // Соединение
            IDbConnection connection = CreateConnection(connectionString);
            objectsToDisposeOnDisconnect = new IDisposable[] { connection };
            return scriptPath == null && updateOptions == UpdateSchemaOptions.Default && !insensitive.HasValue && indexTablespace == null ?
                CreateProviderFromConnection(connection, autoCreateOption) :
                new OracleConnectionProviderEx(connection, autoCreateOption, scriptPath, updateOptions, insensitive, indexTablespace);
        }
示例#13
0
 string UtilityConnString(TestDatabase database) {
     string connString;
     if (!string.IsNullOrEmpty(database.ConnectionString)) {
         var helper = new ConnectionStringParser(database.ConnectionString);
         helper.RemovePartByName("DatabaseName");
         helper.RemovePartByName("DBN");
         helper.RemovePartByName("DatabaseFile");
         helper.RemovePartByName("DBF");
         connString = helper.GetConnectionString();
     } else {
         string uid;
         string pwd;
         if (database.Login != null && !string.IsNullOrEmpty(database.Login.UserID)) {
             uid = database.Login.UserID;
         } else {
             uid = "dba";
         }
         if (database.Login != null && !string.IsNullOrEmpty(database.Login.Password)) {
             pwd = database.Login.Password;
         } else {
             pwd = "sql";
         }
         connString = string.Format("eng={0};uid={1};pwd={2};", database.Server, uid, pwd);
     }
     return "DBN=utility_db;" + connString;
 }
示例#14
0
        public static void UpdateDatabaseName(XafApplication application, string databaseName)
        {
            ConnectionStringParser helper = new ConnectionStringParser(application.ConnectionString);

            helper.RemovePartByName("Initial Catalog");
            application.ConnectionString = string.Format("Initial Catalog={0};{1}", databaseName, helper.GetConnectionString());
        }
示例#15
0
 static string GetConnectionString(XafApplication xafApplication) {
     if (!string.IsNullOrEmpty(xafApplication.ConnectionString))
         return xafApplication.ConnectionString;
     if (!Environment.Is64BitProcess)
         return XpoDefault.ConnectionString;
     var connectionStringParser = new ConnectionStringParser(XpoDefault.ActiveConnectionString);
     connectionStringParser.UpdatePartByName("Provider", "Microsoft.ACE.OLEDB.12.0");
     return connectionStringParser.GetConnectionString();
 }
示例#16
0
 private string RemovePassword(string connectionString)
 {
     if (String.IsNullOrEmpty(connectionString))
     {
         return connectionString;
     }
     var parser = new ConnectionStringParser(connectionString);
     parser.RemovePartByName("Password");
     parser.RemovePartByName("Jet OLEDB:Database Password");
     return parser.GetConnectionString();
 }