Example #1
0
        public static FileStorageServiceBuilder AddContainer(this FileStorageServiceBuilder builder)
        {
            _ = builder ?? throw new ArgumentNullException(nameof(builder));

            var storage   = builder.LastStorageAdded ?? throw new Exception("You must add a Storage service before adding a container");
            var container = storage.Options?.Container ?? throw new Exception("You must define the container name");

            var containerService = storage.GetContainer(container);

            builder.Services.TryAddSingleton <IFileStorageContainer>(containerService);
            builder.Services.AddSingleton(containerService.GetType(), containerService);

            return(builder);
        }
Example #2
0
 public static FileStorageServiceBuilder AddAzureBlobs(this FileStorageServiceBuilder builder, IConfigurationSection configuration)
 {
     return(builder.AddService <AzureBlobsStorage, AzureBlobsStorageOptions>(configuration, "Azure"));
 }
Example #3
0
 public static FileStorageServiceBuilder AddAzureBlobs(this FileStorageServiceBuilder builder, Action <AzureBlobsStorageOptions> storageOptionsConfig)
 {
     return(builder.AddService <AzureBlobsStorage, AzureBlobsStorageOptions>(storageOptionsConfig));
 }
Example #4
0
 public static FileStorageServiceBuilder AddOpenStack(this FileStorageServiceBuilder builder, IConfigurationSection configuration)
 {
     return(builder.AddService <OpenStackStorage, OpenStackStorageOptions>(configuration, "OpenStack"));
 }
Example #5
0
 public static FileStorageServiceBuilder AddOpenStack(this FileStorageServiceBuilder builder, Action <OpenStackStorageOptions> storageOptionsConfig)
 {
     return(builder.AddService <OpenStackStorage, OpenStackStorageOptions>(storageOptionsConfig));
 }
 public static FileStorageServiceBuilder AddS3(this FileStorageServiceBuilder builder, IConfigurationSection configuration)
 {
     return(builder.AddService <S3Storage, S3StorageOptions>(configuration, "S3"));
 }
 public static FileStorageServiceBuilder AddS3(this FileStorageServiceBuilder builder, Action <S3StorageOptions> storageOptionsConfig)
 {
     return(builder.AddService <S3Storage, S3StorageOptions>(storageOptionsConfig));
 }
Example #8
0
        private static void RegisterFileStorageProvider <TFileStorage, TFileStorageOptions>(FileStorageServiceBuilder builder, TFileStorageOptions options)
            where TFileStorage : class, IFileStorage, new()
            where TFileStorageOptions : FileStorageOptions
        {
            _ = builder ?? throw new ArgumentNullException(nameof(builder));
            _ = options ?? throw new ArgumentNullException(nameof(options));

            var storage = new TFileStorage();

            storage.Options = options;
            builder.Services.TryAddSingleton <IFileStorage>(storage);
            builder.Services.AddSingleton <TFileStorage>(storage);
            builder.LastStorageAdded = storage;
        }
Example #9
0
        public static FileStorageServiceBuilder AddService <TFileStorage, TFileStorageOptions>(this FileStorageServiceBuilder builder, IConfiguration configuration, string?providerName = null)
            where TFileStorage : class, IFileStorage, new()
            where TFileStorageOptions : FileStorageOptions, new()
        {
            _ = builder ?? throw new ArgumentNullException(nameof(builder));
            _ = configuration ?? throw new ArgumentNullException(nameof(configuration));

            var section = configuration.GetSection("Pericia.Storage");

            return(builder.AddService <TFileStorage, TFileStorageOptions>(section, providerName));
        }
Example #10
0
        public static FileStorageServiceBuilder AddService <TFileStorage, TFileStorageOptions>(this FileStorageServiceBuilder builder, IConfigurationSection configuration, string?providerName = null)
            where TFileStorage : class, IFileStorage, new()
            where TFileStorageOptions : FileStorageOptions, new()
        {
            _ = builder ?? throw new ArgumentNullException(nameof(builder));
            _ = configuration ?? throw new ArgumentNullException(nameof(configuration));

            var options = configuration.Get <TFileStorageOptions>();

            if (!string.IsNullOrEmpty(providerName) && !string.IsNullOrEmpty(options.Provider) &&
                !string.Equals(providerName, options.Provider, StringComparison.OrdinalIgnoreCase))
            {
                // Configuration asked for another specific provider, so we skip this one
                return(builder);
            }

            RegisterFileStorageProvider <TFileStorage, TFileStorageOptions>(builder, options);
            return(builder);
        }
Example #11
0
        public static FileStorageServiceBuilder AddService <TFileStorage, TFileStorageOptions>(this FileStorageServiceBuilder builder, Action <TFileStorageOptions>?storageOptionsConfig)
            where TFileStorage : class, IFileStorage, new()
            where TFileStorageOptions : FileStorageOptions, new()
        {
            _ = builder ?? throw new ArgumentNullException(nameof(builder));

            var options = new TFileStorageOptions();

            builder.ApplyOptions(options);
            storageOptionsConfig?.Invoke(options);

            RegisterFileStorageProvider <TFileStorage, TFileStorageOptions>(builder, options);
            return(builder);
        }
Example #12
0
 public static FileStorageServiceBuilder AddFileSystem(this FileStorageServiceBuilder builder, IConfigurationSection configuration)
 {
     return(builder.AddService <FileSystemStorage, FileSystemStorageOptions>(configuration, "FileSystem"));
 }
Example #13
0
 public static FileStorageServiceBuilder AddFileSystem(this FileStorageServiceBuilder builder, Action <FileSystemStorageOptions> storageOptionsConfig)
 {
     return(builder.AddService <FileSystemStorage, FileSystemStorageOptions>(storageOptionsConfig));
 }