// TODO: Make an asynchronous factory for it public ModsCache( ISettings settings, IModDirectoryFinder modDirectoryFinder, IFileSystem?fileSystem = null) { _modDirectoryFinder = modDirectoryFinder; _fileSystem = fileSystem ?? new FileSystem(); _modsPath = settings.ModsDirectory !; _armaPath = settings.ServerDirectory !; _cacheFilePath = $"{_modsPath}\\{settings.ModsManagerCacheFileName}.json"; // Blocking on asynchronous code as it's only done once at app startup _mods = LoadCache() .Result .OnFailureCompensate(x => BuildCacheFromModsDirectory()) .Value; SaveCache().Wait(); }
public KeysPreparer( ISettings settings, IConfig serverConfig, IModDirectoryFinder modDirectoryFinder, IKeysFinder keysFinder, IKeysCopier keysCopier, ILogger <KeysPreparer> logger, IFileSystem?fileSystem = null) { _modDirectoryFinder = modDirectoryFinder; _keysFinder = keysFinder; _keysCopier = keysCopier; _logger = logger; _fileSystem = fileSystem ?? new FileSystem(); _keysDirectory = _fileSystem.Path.Join(settings.ServerDirectory, KeysConstants.KeysDirectoryName); _externalKeysDirectoryPath = _fileSystem.Path.Join(serverConfig.DirectoryPath, KeysConstants.ExternalKeysDirectoryName); _managerDirectory = settings.ManagerDirectory; }