Example #1
0
        /// <summary>
        /// Adds <see cref="IFileService"/> using in-memory storage as the backing store. Only for testing purposes.
        /// </summary>
        /// <param name="services">Specifies the contract for a collection of service descriptors.</param>
        /// <param name="configure">Configuration action.</param>
        public static IServiceCollection AddFiles(this IServiceCollection services, Action <FileServiceConfigurationBuilder> configure)
        {
            var builder = new FileServiceConfigurationBuilder(services);

            services.AddScoped <IFileServiceFactory, DefaultFileServiceFactory>();
            configure?.Invoke(builder);
            return(services);
        }
Example #2
0
 /// <summary>
 /// Adds <see cref="FileServiceLocal"/> implementation.
 /// </summary>
 public static FileServiceConfigurationBuilder AddFileSystem(this FileServiceConfigurationBuilder builder, string name, Action <FileServiceLocal.FileServiceOptions> configure = null)
 {
     builder.Services.AddKeyedService <IFileService, FileServiceLocal, string>(
         key: name,
         serviceProvider => GetFileServiceLocal(serviceProvider, configure),
         serviceLifetime: ServiceLifetime.Transient
         );
     return(builder);
 }
Example #3
0
 /// <summary>
 /// Adds <see cref="FileServiceAzureStorage"/> implementation.
 /// </summary>
 public static FileServiceConfigurationBuilder AddAzureStorage(this FileServiceConfigurationBuilder builder, string name, Action <FileServiceAzureStorage.FileServiceOptions> configure = null)
 {
     builder.Services.AddKeyedService <IFileService, FileServiceAzureStorage, string>(
         key: name,
         serviceProvider => {
         var options = new FileServiceAzureStorage.FileServiceOptions {
             ConnectionStringName = FileServiceAzureStorage.CONNECTION_STRING_NAME,
             ContainerName        = serviceProvider.GetRequiredService <IHostEnvironment>().EnvironmentName
         };
         configure?.Invoke(options);
         var connectionString = serviceProvider.GetRequiredService <IConfiguration>().GetConnectionString(options.ConnectionStringName);
         return(new FileServiceAzureStorage(connectionString, options.ContainerName));
     },
         serviceLifetime: ServiceLifetime.Transient
         );
     return(builder);
 }
Example #4
0
 /// <summary>
 /// Adds <see cref="FileServiceInMemory"/> implementation.
 /// </summary>
 public static FileServiceConfigurationBuilder AddFilesInMemory(this FileServiceConfigurationBuilder builder, string name)
 {
     builder.Services.AddKeyedService <IFileService, FileServiceInMemory, string>(name, serviceLifetime: ServiceLifetime.Transient);
     return(builder);
 }
Example #5
0
 /// <summary>
 /// Adds <see cref="FileServiceInMemory"/> implementation.
 /// </summary>
 public static FileServiceConfigurationBuilder AddFilesInMemory(this FileServiceConfigurationBuilder builder)
 {
     AddFilesInMemory(builder.Services);
     return(builder);
 }
Example #6
0
 /// <summary>
 /// Adds <see cref="FileServiceAzureStorage"/> implementation.
 /// </summary>
 public static FileServiceConfigurationBuilder AddAzureStorage(this FileServiceConfigurationBuilder builder, Action <FileServiceAzureStorage.FileServiceOptions> configure = null)
 {
     AddFilesAzure(builder.Services, configure);
     return(builder);
 }
Example #7
0
 /// <summary>
 /// Adds <see cref="FileServiceLocal"/> implementation.
 /// </summary>
 public static FileServiceConfigurationBuilder AddFileSystem(this FileServiceConfigurationBuilder builder, Action <FileServiceLocal.FileServiceOptions> configure = null)
 {
     AddFilesLocal(builder.Services, configure);
     return(builder);
 }