using LightlessSync.FileCache; using LightlessSync.LightlessConfiguration; using LightlessSync.Services; using LightlessSync.Services.Mediator; using LightlessSync.WebAPI.Files; using Microsoft.Extensions.Logging; namespace LightlessSync.PlayerData.Factories; public class FileDownloadManagerFactory { private readonly FileCacheManager _fileCacheManager; private readonly FileCompactor _fileCompactor; private readonly FileTransferOrchestrator _fileTransferOrchestrator; private readonly PairProcessingLimiter _pairProcessingLimiter; private readonly ILoggerFactory _loggerFactory; private readonly LightlessMediator _lightlessMediator; private readonly LightlessConfigService _configService; public FileDownloadManagerFactory( ILoggerFactory loggerFactory, LightlessMediator lightlessMediator, FileTransferOrchestrator fileTransferOrchestrator, FileCacheManager fileCacheManager, FileCompactor fileCompactor, PairProcessingLimiter pairProcessingLimiter, LightlessConfigService configService) { _loggerFactory = loggerFactory; _lightlessMediator = lightlessMediator; _fileTransferOrchestrator = fileTransferOrchestrator; _fileCacheManager = fileCacheManager; _fileCompactor = fileCompactor; _pairProcessingLimiter = pairProcessingLimiter; _configService = configService; } public FileDownloadManager Create() { return new FileDownloadManager( _loggerFactory.CreateLogger(), _lightlessMediator, _fileTransferOrchestrator, _fileCacheManager, _fileCompactor, _pairProcessingLimiter, _configService); } }