async Task IConfigurationStorage.SaveChanges(
            Models.Client.ConfigurationSettings configurationSettings)
        {
            using (await _asyncMutex.WaitAsync().ConfigureAwait(false))
            {
                var directoryInfo = new DirectoryInfo(Path.GetDirectoryName(_filePath));
                if (!directoryInfo.Exists)
                {
                    directoryInfo.Create();
                }

                using (var stream = new FileStream(_filePath, FileMode.Create))
                {
                    await _configurationDataSerializer.Serialize(
                        stream,
                        new Models.Data.ConfigurationData(
                            configurationSettings.CardTextOffset,
                            configurationSettings.FontSize,
                            configurationSettings.HasLoaded,
                            configurationSettings.PowerLogFilePath,
                            configurationSettings.TextEditorFilePath,
                            configurationSettings.TrackerWindowLocation,
                            configurationSettings.TrackerWindowSize)).ConfigureAwait(false);
                }
            }
        }
        async Task IConfigurationStorage.SaveChanges(
            Models.Client.ConfigurationSettings configurationSettings)
        {
            await _configurationStorage.SaveChanges(configurationSettings).ConfigureAwait(false);

            _eventDispatcher.DispatchEvent(new ViewEvents.ConfigurationSettingsSaved());
        }
示例#3
0
        public ConfigurationSettingsViewModel(
            IBackgroundWorkInterface backgroundWorkInterface,
            IConfigurationSource configurationSource,
            IConfigurationStorage configurationStorage)
        {
            _backgroundWorkInterface = backgroundWorkInterface.Require(nameof(backgroundWorkInterface));
            _configurationSource     = configurationSource.Require(nameof(configurationSource));
            _configurationStorage    = configurationStorage.Require(nameof(configurationStorage));

            Models.Client.ConfigurationSettings configurationSettings = _configurationSource.GetSettings();

            CardTextOffset    = configurationSettings.CardTextOffset;
            FontSize          = configurationSettings.FontSize;
            _powerLogFilePath = configurationSettings.PowerLogFilePath;
        }