Deveel.Data.Client.ConnectionClient.CreateDbConfig C# (CSharp) Method

CreateDbConfig() private method

private CreateDbConfig ( DeveelDbConnectionStringBuilder settings ) : IConfiguration
settings DeveelDbConnectionStringBuilder
return IConfiguration
        private IConfiguration CreateDbConfig(DeveelDbConnectionStringBuilder settings)
        {
            var config = new Configuration.Configuration();

            var databaseName = settings.Database;
            var dataSource = settings.DataSource;

            var schema = settings.Schema;
            if (String.IsNullOrEmpty(schema))
                schema = "APP";

            config.SetValue("database.name", databaseName);
            config.SetValue("database.defaultSchema", schema);

            if (IsInMemory(dataSource)) {
                config.SetValue("database.storeType", "memory");
            } else if (IsSingleFile(dataSource)) {
                var index = dataSource.IndexOf('=');
                var fileName = dataSource.Substring(index + 1);

                config.SetValue("database.storeType", "file");
                config.SetValue("database.path", fileName);
            } else if (IsJournaled(dataSource)) {
                var index = dataSource.IndexOf('=');

                var path = dataSource.Substring(index + 1);
                config.SetValue("database.storeType", "journaled");
                config.SetValue("database.path", path);
            }

            foreach (KeyValuePair<string, object> pair in settings) {
                var key = pair.Key;
                var value = pair.Value;

                // TODO: normalize the key and convert the value to set into the configuration
                config.SetValue(key, value);
            }

            return config;
        }