public ApplicationSettingsService(AppSettingsFileRepository appSettingsFileRepository, IRegistryAccess registryAccess) { _registryRepository = registryAccess; _fileRepository = appSettingsFileRepository; try { bool result = _fileRepository.LoadSettings(); if (!result) { _fileRepository = new AppSettingsFileRepository(); _fileRepository.SaveSettings(); } result = result & _registryRepository.TryReadObjectFromRegistry(out _registryAppSettings); if (!result || _registryAppSettings == null) { _registryAppSettings = RegistryAppSettings.CreateNew(ProductName, CompanyName); _registryRepository.SaveObjectToRegistry(_registryAppSettings); } } catch (Exception ex) { Log.Error(ex, "Fatal error encountered when accessing the registry settings"); _registryAppSettings = RegistryAppSettings.CreateNew(ProductName, CompanyName); //MessageBox.Show(ex.Message, Resources.Fatal_error_encountered_when_accessing_the_registry_settings_please_restart_, MessageBoxButtons.OK, MessageBoxIcon.Error); } _fileRepository.LoadSettingsCompleted += _appSettingsFileRepository_LoadSettingsCompleted; }
// Unit tests public static ApplicationSettingsService CreateService(AppSettingsFileRepository appSettingsFileRepository) { return(new ApplicationSettingsService(appSettingsFileRepository, new LocalStorageRegistryAccess(Application.CompanyName, Application.ProductName))); }