void SynchronizeExtensions() { var settingsRepository = new SettingsRepository(extensionManager, SettingsFilePath); settingsRepository.Log += LogMessage; var persistedExtensionSettings = settingsRepository.GetPersistedExtensionSettings(); if (persistedExtensionSettings.Count == 0) return; var installedUserExtensions = extensionManager.GetInstalledExtensionsInformation(); extensionManager.AutoUpdateExtensions = optionsPage.AutoUpdateExtensions; var extensionsToInstall = extensionManager.AutoUpdateExtensions ? persistedExtensionSettings :persistedExtensionSettings.Except(installedUserExtensions).ToList(); var extensionsToRemove = installedUserExtensions.Except(persistedExtensionSettings).ToList(); var settingsFileUpdateDate = File.GetLastWriteTime(SettingsFilePath); extensionManager.InstallExtensions(extensionsToInstall); extensionManager.UnInstallExtensions(extensionsToRemove, settingsFileUpdateDate); }
void PersistExtensionSettings() { var settingsRepository = new SettingsRepository(extensionManager, SettingsFilePath); settingsRepository.Log += LogMessage; settingsRepository.PersistExtensionSettings(); }