Exemplo n.º 1
0
        public static IDbConnection CreateDbConnection(this IDatabase database, string userName, string password)
        {
            if (database == null)
            {
                throw new ArgumentNullException("database");
            }

            var dbHandler = database.Context.SystemContext as IDatabaseHandler;

            if (dbHandler == null)
            {
                dbHandler = new SingleDatabaseHandler(database);
            }

            var serverConnector = new EmbeddedServerConnector(dbHandler);
            var clientConnector = new EmbeddedClientConnector(serverConnector);

            var settings = new DeveelDbConnectionStringBuilder {
                UserName = userName,
                Password = password,
                Database = database.Name
            };

            return(new DeveelDbConnection(clientConnector, settings));
        }
Exemplo n.º 2
0
        public static IDbConnection CreateDbConnection(this IDatabase database, IConfiguration configuration)
        {
            if (database == null)
            {
                throw new ArgumentNullException("database");
            }
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            var dbName = configuration.GetString("database.name");

            if (!String.IsNullOrEmpty(dbName) &&
                !String.Equals(dbName, database.Name))
            {
                throw new ArgumentException(String.Format("The specified database name '{0}' differs from the original database name '{1}'.",
                                                          dbName, database.Name));
            }

            var dbHandler = database.System as IDatabaseHandler;

            if (dbHandler == null)
            {
                dbHandler = new SingleDatabaseHandler(database);
            }

            var serverConnector = new EmbeddedServerConnector(dbHandler);
            var clientConnector = new EmbeddedClientConnector(serverConnector);

            var settings = BuildConnectionString(configuration);

            if (String.IsNullOrEmpty(settings.Database))
            {
                settings.Database = database.Name;
            }

            return(new DeveelDbConnection(clientConnector, settings));
        }