/// <summary> /// Initializes a new instance of the <see cref="FileAllocator"/> class. /// </summary> /// <param name="connection">Storage connection instance.</param> /// <param name="filesystemDescriptorAccessor">Filesystem descriptor accessor instance.</param> /// <param name="entryDescriptorRepository">File descriptor repository instance.</param> /// <param name="optimizer">Storage optimizer instance.</param> /// <param name="storageExtender">Storage extender instance.</param> /// <param name="storageOperationLocker">Storage operation locker instance.</param> /// <param name="logger">Logger instance.</param> public FileAllocator( IStorageConnection connection, IFilesystemDescriptorAccessor filesystemDescriptorAccessor, IEntryDescriptorRepository entryDescriptorRepository, IStorageOptimizer optimizer, IStorageExtender storageExtender, IStorageOperationLocker storageOperationLocker, ILogger logger) { _connection = connection; _filesystemDescriptorAccessor = filesystemDescriptorAccessor; _entryDescriptorRepository = entryDescriptorRepository; _optimizer = optimizer; _storageExtender = storageExtender; _storageOperationLocker = storageOperationLocker; _logger = logger; }
private static IServiceProvider CreateServiceProvider(string storageFileName, IStorageOptimizer storageOptimizer = null, IStorageExtender storageExtender = null) { var services = new ServiceCollection(); services.AddSingleton <ILogger>(new LoggerConfiguration().CreateLogger()); services.AddFileFsDataAccessInMemory(storageFileName); storageOptimizer ??= new Mock <IStorageOptimizer>().Object; services.Replace(ServiceDescriptor.Singleton(storageOptimizer)); storageExtender ??= new Mock <IStorageExtender>().Object; services.Replace(ServiceDescriptor.Singleton(storageExtender)); var serviceProvider = services.BuildServiceProvider(); return(serviceProvider); }