Ejemplo n.º 1
0
        // 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();
        }
Ejemplo n.º 2
0
        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;
        }