/// <summary> Creates a new manager and loads settings stored in the <see cref="EWpfClientFile.Settings"/> file. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        /// <param name="readPreviouslyUnpackedJson"> Whether to extract game files. </param>
        public WpfClientManager
        (
            IWarThunderFileManager fileManager,
            IWarThunderFileReader fileReader,
            IWarThunderSettingsManager settingsManager,
            IParser parser,
            IUnpacker unpacker,
            IConverter converter,
            IWarThunderJsonHelper jsonHelper,
            ICsvDeserializer csvDeserializer,
            IDataRepositoryFactory dataRepositoryFactory,
            IRandomiser randomizer,
            IVehicleSelector vehicleSelector,
            IPresetGenerator presetGenerator,
            bool generateDatabase,
            bool readOnlyJson,
            bool readPreviouslyUnpackedJson,
            params IConfiguredLogger[] loggers
        ) : base(fileManager, fileReader, settingsManager, parser, unpacker, converter, jsonHelper, csvDeserializer, dataRepositoryFactory, randomizer, vehicleSelector, presetGenerator, generateDatabase, readOnlyJson, readPreviouslyUnpackedJson, loggers)
        {
            _flagImageSources             = new Dictionary <ECountry, ImageSource>();
            _vehicleIconBitmapSources     = new ConcurrentDictionary <string, BitmapSource>();
            _vehiclePortraitBitmapSources = new ConcurrentDictionary <string, BitmapSource>();

            ProcessVehicleImages = (vehicle) => { GetIconBitmapSource(vehicle); GetPortraitBitmapSource(vehicle); };
        }
Пример #2
0
        /// <summary> Creates a new manager and loads settings stored in the settings file. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        public Manager
        (
            IWarThunderFileManager fileManager,
            IWarThunderFileReader fileReader,
            IWarThunderSettingsManager settingsManager,
            IParser parser,
            IUnpacker unpacker,
            IConverter converter,
            IWarThunderJsonHelper jsonHelper,
            ICsvDeserializer csvDeserializer,
            IDataRepositoryFactory dataRepositoryFactory,
            IRandomiser randomizer,
            IVehicleSelector vehicleSelector,
            IPresetGenerator presetGenerator,
            IThunderSkillParser thunderSkillParser,
            bool generateDatabase,
            bool readOnlyJson,
            bool readPreviouslyUnpackedJson,
            params IConfiguredLogger[] loggers
        ) : base(EOrganizationLogCategory.Manager, loggers)
        {
            _generateDatabase           = generateDatabase;
            _readOnlyJson               = readOnlyJson;
            _readPreviouslyUnpackedJson = readPreviouslyUnpackedJson;
            _startupConfiguration       = GetStartupConfiguration(_generateDatabase, _readOnlyJson, _readPreviouslyUnpackedJson);
            _excludedGaijinIdParts      = new List <string>()
            {
                "_football",
                "germ_panzerkampflaufer_565_r",
                "germ_panzerkampflaufer_565_r_2",
                "po-2_nw",
                "_race",
                "sdi_",
                "_space_suit",
                "toon_",
                "_tutorial",
                "ucav_assault",
                "ucav_scout",
                "uk_centaur_aa_mk_",
                "us_m35",
                "us_m35_2",
                "ussr_sht_1",
                "ussr_sht_1_2",
            };
            _fileManager           = fileManager;
            _fileReader            = fileReader;
            _parser                = parser;
            _unpacker              = unpacker;
            _converter             = converter;
            _jsonHelper            = jsonHelper;
            _csvDeserializer       = csvDeserializer;
            _dataRepositoryFactory = dataRepositoryFactory;
            _randomizer            = randomizer;
            _vehicleSelector       = vehicleSelector;
            _presetGenerator       = presetGenerator;
            _thunderSkillParser    = thunderSkillParser;

            _cache = new List <IPersistentObject>();

            PlayableVehicles = new Dictionary <string, IVehicle>();
        public void Initialise()
        {
            _fileManager     = new WarThunderFileManager(Presets.Logger);
            _fileReader      = new WarThunderFileReader(Presets.Logger);
            _unpacker        = new Unpacker(_fileManager, Presets.Logger);
            _converter       = new Converter(Presets.Logger);
            _jsonHelper      = new WarThunderJsonHelper(Presets.Logger);
            _csvDeserializer = new CsvDeserializer(Presets.Logger);

            var mockSettingsManager = new Mock <IWarThunderSettingsManager>();

            mockSettingsManager
            .Setup(manager => manager.GetSetting(nameof(Settings.WarThunderLocation)))
            .Returns(Settings.WarThunderLocation);
            mockSettingsManager
            .Setup(manager => manager.GetSetting(nameof(Settings.KlensysWarThunderToolsLocation)))
            .Returns(Settings.KlensysWarThunderToolsLocation);
            mockSettingsManager
            .Setup(manager => manager.GetSetting(nameof(Settings.TempLocation)))
            .Returns(Settings.TempLocation);

            _manager = new Manager
                       (
                _fileManager,
                _fileReader,
                mockSettingsManager.Object,
                new Mock <IParser>().Object,
                _unpacker,
                _converter,
                _jsonHelper,
                _csvDeserializer,
                new Mock <IDataRepositoryFactory>().Object,
                new Mock <IRandomiser>().Object,
                new Mock <IVehicleSelector>().Object,
                new Mock <IPresetGenerator>().Object,
                new Mock <IThunderSkillParser>().Object,
                true,
                false,
                false,
                Presets.Logger
                       );
            _rootDirectory        = $"{Directory.GetCurrentDirectory()}\\TestFiles";
            _defaultTempDirectory = Settings.TempLocation;

            if (!Directory.Exists(_rootDirectory))
            {
                Directory.CreateDirectory(_rootDirectory);
            }
            else
            {
                _fileManager.EmptyDirectory(_rootDirectory);
            }

            Settings.TempLocation = _rootDirectory;
        }
Пример #4
0
 /// <summary> Creates a new settings manager. </summary>
 /// <param name="settingsFileName"> The name of the settings file to attach to this manager. </param>
 /// <param name="fileManager"> An instance of a file manager. </param>
 /// <param name="requiredSettingNames"> Names of required settings. </param>
 /// <param name="loggers"> Instances of loggers. </param>
 public WarThunderSettingsManager(IWarThunderFileManager fileManager, string settingsFileName, IEnumerable <string> requiredSettingNames, params IConfiguredLogger[] loggers)
     : base(fileManager, settingsFileName, requiredSettingNames, loggers)
 {
     _fileManager = fileManager;
 }
        /// <summary> Creates a new manager and loads settings stored in the settings file. </summary>
        /// <param name="generateDatabase"> Whether to read data from JSON instead of the database. </param>
        /// <param name="readOnlyJson"> Whether to generate the database. </param>
        public Manager
        (
            IWarThunderFileManager fileManager,
            IWarThunderFileReader fileReader,
            IWarThunderSettingsManager settingsManager,
            IParser parser,
            IUnpacker unpacker,
            IConverter converter,
            IWarThunderJsonHelper jsonHelper,
            ICsvDeserializer csvDeserializer,
            IDataRepositoryFactory dataRepositoryFactory,
            IRandomiser randomizer,
            IVehicleSelector vehicleSelector,
            IPresetGenerator presetGenerator,
            bool generateDatabase,
            bool readOnlyJson,
            bool readPreviouslyUnpackedJson,
            params IConfiguredLogger[] loggers
        ) : base(EOrganizationLogCategory.Manager, loggers)
        {
            _generateDatabase           = generateDatabase;
            _readOnlyJson               = readOnlyJson;
            _readPreviouslyUnpackedJson = readPreviouslyUnpackedJson;
            _startupConfiguration       = GetStartupConfiguration(_generateDatabase, _readOnlyJson, _readPreviouslyUnpackedJson);
            _excludedGaijinIdParts      = new List <string>()
            {
                "_football",
                "germ_panzerkampflaufer_565_r",
                "germ_panzerkampflaufer_565_r_2",
                "po-2_nw",
                "_race",
                "_space_suit",
                "_tutorial",
                "uk_centaur_aa_mk_",
                "us_m35",
                "us_m35_2",
                "ussr_sht_1",
                "ussr_sht_1_2",
            };
            _fileManager           = fileManager;
            _fileReader            = fileReader;
            _parser                = parser;
            _unpacker              = unpacker;
            _converter             = converter;
            _jsonHelper            = jsonHelper;
            _csvDeserializer       = csvDeserializer;
            _dataRepositoryFactory = dataRepositoryFactory;
            _randomizer            = randomizer;
            _vehicleSelector       = vehicleSelector;
            _presetGenerator       = presetGenerator;

            _cache           = new List <IPersistentObject>();
            PlayableVehicles = new Dictionary <string, IVehicle>();

            _settingsManager = settingsManager;
            _settingsManager.Initialise(_startupConfiguration.IsIn(new List <EStartup> {
                EStartup.ReadDatabase, EStartup.ReadUnpackedJson
            }));
            LoadSettings();

            ResearchTrees = new Dictionary <ENation, ResearchTree>();

            LogDebug(ECoreLogMessage.Created.FormatFluently(EOrganizationLogCategory.Manager));
        }