public static IBlobServiceBuilder AddFileSystemStorageService <T>(this IBlobServiceBuilder builder, Action <FileSystemStorageOptions> setupAction = null) where T : FileSystemStorageService
        {
            var fileSystemStorageOptions = new FileSystemStorageOptions();

            setupAction?.Invoke(fileSystemStorageOptions);
            fileSystemStorageOptions.TryValidate();

            builder.Services.AddSingleton(fileSystemStorageOptions);

            builder.Services.AddScoped <IStorageService, T>();

            return(builder);
        }
        public static IBlobServiceBuilder AddEfMetaStores <TContext>(this IBlobServiceBuilder builder, Action <EfStoreOptions> setupAction = null)
            where TContext : BlobServiceContext
        {
            var efStoreOptions = new EfStoreOptions();

            setupAction?.Invoke(efStoreOptions);

            builder.Services.AddSingleton(efStoreOptions);

            builder.Services
            .AddEntityFrameworkSqlServer()
            .AddDbContext <TContext>();

            builder.Services.AddScoped <IBlobStore, EfBlobStore <TContext> >();
            builder.Services.AddScoped <IContainerStore, EfContainerStore <TContext> >();
            builder.Services.AddScoped <IBlobMetaDataStore, EfBlobMetaDataStore <TContext> >();
            return(builder);
        }