public CosmosConfigurationSource(CosmosStorageOptions options, SaveConfigurationOptions saveConfig,
                                  IConfiguration configSeed = null)
 {
     SaveConfig = saveConfig;
     Options    = options;
     ConfigSeed = configSeed;
 }
Example #2
0
        public static IConfigurationBuilder AddSqliteConfigurationProvider(this IConfigurationBuilder builder,
                                                                           IFileProvider provider,
                                                                           string path, bool reloadOnChange, IConfiguration configSeed = null,
                                                                           Action <SaveConfigurationOptions> configureAction           = null)
        {
            var saveConfig = new SaveConfigurationOptions();

            configureAction?.Invoke(saveConfig);

            if (provider == null && Path.IsPathRooted(path))
            {
                provider = new PhysicalFileProvider(Path.GetDirectoryName(path));
                path     = Path.GetFileName(path);
            }

            var source = new SqliteConfigurationSource(path, saveConfig)
            {
                ReloadOnChange = reloadOnChange,
                ConfigSeed     = configSeed,
                SeedStrategy   = SeedStrategy.Initialize,
                FileProvider   = provider
            };

            builder.Add(source);
            return(builder);
        }
Example #3
0
 public SqliteConfigurationSource(string dataFilePath, SaveConfigurationOptions saveConfig,
                                  IConfiguration configSeed = null, SeedStrategy strategy = SeedStrategy.Initialize)
 {
     SaveConfig        = saveConfig;
     ConfigSeed        = configSeed;
     DataFilePath      = dataFilePath;
     DataDirectoryPath = new FileInfo(DataFilePath).Directory?.FullName;
     DataFileName      = Path.GetFileName(DataFilePath);
     SeedStrategy      = strategy;
 }
Example #4
0
        public static IConfigurationBuilder AddCosmosConfigurationProvider(this IConfigurationBuilder builder,
                                                                           Action <CosmosStorageOptions> configureDatabase,
                                                                           Action <SaveConfigurationOptions> configureOptions = null,
                                                                           bool reloadOnChange = false, IConfiguration configSeed = null)
        {
            var dbConfig = new CosmosStorageOptions();

            configureDatabase?.Invoke(dbConfig);

            var saveConfig = new SaveConfigurationOptions();

            configureOptions?.Invoke(saveConfig);

            var source = new CosmosConfigurationSource(dbConfig, saveConfig, configSeed)
            {
                ReloadOnChange = reloadOnChange
            };

            builder.Add(source);
            return(builder);
        }
Example #5
0
        public static void MigrateToLatest(string dataFilePath, SaveConfigurationOptions saveConfig,
                                           IConfiguration configSeed = null, SeedStrategy strategy = SeedStrategy.InsertIfNotExists)
        {
            try
            {
                var connectionString = $"Data Source={dataFilePath}";

                if (saveConfig.CreateIfNotExists)
                {
                    CreateIfNotExists(connectionString);
                }

                var builder = new SqliteConnectionStringBuilder(connectionString)
                {
                    Mode = SqliteOpenMode.ReadWrite
                };
                using (var db = new SqliteConnection(builder.ConnectionString))
                {
                    db.Open();

                    if (saveConfig.MigrateOnStartup)
                    {
                        MigrateUp(db);
                    }

                    if (configSeed != null)
                    {
                        db.SeedInTransaction(configSeed, strategy);
                    }
                }
            }
            catch (SqliteException e)
            {
                Trace.TraceError("Error migrating configuration database: {0}", e);
                throw;
            }
        }
Example #6
0
 static void DefaultSaveOptions(SaveConfigurationOptions o)
 {
     o.MigrateOnStartup  = true;
     o.CreateIfNotExists = true;
     o.SeedStrategy      = SeedStrategy.InsertIfNotExists;
 }