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();
 }