Exemple #1
0
        private static IAzureStorageAccountBuilder AddOptions <TOptions>(
            this IAzureStorageAccountBuilder builder,
            string named,
            string sectionName,
            string rootSectionName,
            Action <TOptions>?configure = default)
            where TOptions : StorageOptionsBase
        {
            if (string.IsNullOrEmpty(sectionName))
            {
                sectionName = typeof(TOptions).Name;
            }

            builder.Services.AddOptions <TOptions>(named)
            .Configure <IConfiguration>((options, configuration) =>
            {
                options.AccountName = builder.AccountName;

                var rootSection = configuration.GetSection(rootSectionName).Exists() ? rootSectionName : sectionName;
                var configPath  = ConfigurationPath.Combine(rootSection, sectionName);

                var section = configuration.GetSection(configPath);
                section.Bind(options);

                configure?.Invoke(options);
            });

            return(builder);
        }
Exemple #2
0
 public static IAzureStorageAccountBuilder AddAzureTable(
     this IAzureStorageAccountBuilder builder,
     string named,
     string tableName)
 {
     return(builder.AddAzureTable <StorageTableOptions>(named, configure: options =>
     {
         options.TableName = tableName;
     }));
 }
Exemple #3
0
 /// <summary>
 /// Adds Configuration for UseStaticFiles middleware to use Azure Storage container.
 /// </summary>
 /// <typeparam name="TOptions"></typeparam>
 /// <param name="builder"></param>
 /// <param name="named"></param>
 /// <param name="sectionName"></param>
 /// <param name="rootSectionName"></param>
 /// <param name="configure"></param>
 /// <returns></returns>
 public static IAzureStorageAccountBuilder AddAzureStorageForStaticFiles <TOptions>(
     this IAzureStorageAccountBuilder builder,
     string named                = "",
     string sectionName          = "",
     string rootSectionName      = AzureStorageConstants.StorageFileProviders,
     Action <TOptions>?configure = null)
     where TOptions : StorageFileProviderOptions
 {
     return(builder.AddOptions(named, sectionName, rootSectionName, configure));
 }
Exemple #4
0
        public static IAzureStorageAccountBuilder AddAzureBlobContainer(
            this IAzureStorageAccountBuilder builder,
            string named,
            string containerName)
        {
            builder.AddAzureBlobContainer <StorageBlobOptions>(
                named: named,
                configure: options => options.ContainerName = containerName);

            return(builder);
        }
Exemple #5
0
 public static IAzureStorageAccountBuilder AddAzureQueue(
     this IAzureStorageAccountBuilder builder,
     string named,
     string queueName,
     TimeSpan?visibilityTimeout = null)
 {
     return(builder.AddAzureQueue <StorageQueueOptions>(named, configure: options =>
     {
         options.QueueName = queueName;
         options.VisibilityTimeout = visibilityTimeout;
     }));
 }
Exemple #6
0
        public static IAzureStorageAccountBuilder AddAzureTable <TOptions>(
            this IAzureStorageAccountBuilder builder,
            string named                = "",
            string sectionName          = "",
            string rootSectionName      = AzureStorageConstants.StorageTables,
            Action <TOptions>?configure = default)
            where TOptions : StorageTableOptions
        {
            builder.Services.TryAddSingleton <IStorageTable <TOptions>, StorageTable <TOptions> >();

            return(builder.AddOptions(named, sectionName, rootSectionName, configure));
        }