public Composer(Func <FtpClient> clientFactory, ILogger logger) { _ftpClientProvider = new FtpClientProvider(clientFactory); Logger = new ClassLogger <T>(logger); _contentUpdater = new Lazy <IContentUpdater>(() => new ContentUpdater(ChecksumDataStorage, FtpManager, Logger)); _differenceGenerator = new Lazy <IDifferenceGenerator>(() => new DifferenceGenerator(ChecksumDataStorage, FtpDirectoryTreeBuilder, FtpManager, LocalDirectoryTreeBuilder, Logger, TreeComparer)); _ftpDirectoryTreeBuilder = new Lazy <IFtpDirectoryTreeBuilder>(() => new FtpDirectoryTreeBuilder(new StorageChecksumProvider(ChecksumDataStorage), FtpManager)); _ftpManager = new Lazy <IFtpManager>(() => new FtpManager(ChecksumCalculator, ChecksumDataStorage, _ftpClientProvider, Logger)); _localDirectoryTreeBuilder = new Lazy <ILocalDirectoryTreeBuilder>(() => new LocalDirectoryTreeBuilder(new LocalChecksumProvider(ChecksumCalculator))); }
public FtpCommandExecutor(IFtpClientProvider ftpClientProvider, IClassLogger logger) => (_ftpClientProvider, _logger) = (ftpClientProvider, logger);
public FtpManager(IChecksumCalculator checksumCalculator, ChecksumDataStorage checksumDataStorage, IFtpClientProvider ftpClientProvider, IClassLogger logger) { var ftpExecutor = new FtpCommandExecutor(ftpClientProvider, logger); _ftpContentGetter = new FtpContentGetter(ftpExecutor); _ftpDirectoryCreator = new FtpDirectoryCreator(ftpExecutor); _ftpDirectoryRemover = new FtpDirectoryRemover(ftpExecutor, _ftpContentGetter, _ftpFileRemover, logger); _ftpFileUploader = new FtpFileUploader(checksumCalculator, ftpExecutor, checksumDataStorage); _ftpDirectoryUploader = new FtpDirectoryUploader(_ftpDirectoryCreator, _ftpFileUploader, logger); _ftpExistenceChecker = new FtpExistenceChecker(ftpExecutor); _ftpFileRemover = new FtpFileRemover(ftpExecutor); _ftpTextReader = new FtpTextReader(ftpExecutor); _ftpTextUploader = new FtpTextUploader(_ftpFileUploader); }