private void DeleteOldSites(DirectoryInfo siteIniUserDir, GrabConfiguration configuration) { var countries = siteIniUserDir.GetDirectories(); var selectedSites = configuration.Countries.SelectMany(x => x.Sites).ToList(); foreach (var country in countries) { var files = country.GetFiles(); var countrySites = selectedSites.Where(x => x.Country.Name.ToLower() == country.Name.ToLower()).ToList(); if (countrySites.Count > 0) { foreach (var file in files) { if (Path.GetExtension(file.Name).ToLower() == ".xml") { if (!countrySites.Any(x => x.Path.Name == file.Name)) { file.Delete(); } } else if (Path.GetExtension(file.Name).ToLower() == ".ini") { if (!countrySites.Any(x => x.IniPath.Name == file.Name)) { file.Delete(); } } } } } }
private void AddMissingSites(DirectoryInfo siteIniUserDir, GrabConfiguration configuration) { var selectedSites = configuration.Countries.SelectMany(x => x.Sites).ToList(); var countries = siteIniUserDir.GetDirectories(); foreach (var site in selectedSites) { if (site.Path.Exists) { var targetXmlFile = Path.Combine(siteIniUserDir.FullName, site.Country.Name, site.Path.Name); if (!File.Exists(targetXmlFile)) { Directory.CreateDirectory(Path.GetDirectoryName(targetXmlFile)); File.Copy(site.Path.FullName, targetXmlFile); } } if (site.IniPath.Exists) { var targetIniFile = Path.Combine(siteIniUserDir.FullName, site.Country.Name, site.IniPath.Name); if (!File.Exists(targetIniFile)) { Directory.CreateDirectory(Path.GetDirectoryName(targetIniFile)); File.Copy(site.IniPath.FullName, targetIniFile); } } } }
public void Execute(GrabConfiguration grabConfiguration) { try { ReportStatus("Updating siteini.user", ""); Log.Debug(string.Format("Updating siteini.user for {0}", grabConfiguration.Name)); var siteIniUserDir = new DirectoryInfo(Path.Combine(grabConfiguration.Path.FullName, Settings.Default.SiteIniUser)); var listUserCountries = new ListCountries(siteIniUserDir); var userCountries = listUserCountries.Execute(); var sitePackDir = new DirectoryInfo(Path.Combine(Locations.WorkingDirectory.FullName, Settings.Default.SiteIniPack)); var listAllCountries = new ListCountries(sitePackDir); var allCountries = listAllCountries.Execute(); var selectedSites = userCountries.SelectMany(x => x.Sites).ToList(); var allSites = allCountries.SelectMany(x => x.Sites).ToList(); for (int i = 0; i < selectedSites.Count; i++) { ReportStatus("Updating siteini.user", string.Format("{0} / {1}", i + 1, selectedSites.Count)); site item = selectedSites[i]; var siteXmlPack = allSites.SingleOrDefault(x => x.Path.Name == item.Path.Name); if (siteXmlPack != null) { File.Copy(siteXmlPack.Path.FullName, item.Path.FullName, true); if (siteXmlPack.IniPath.Exists) { File.Copy(siteXmlPack.IniPath.FullName, item.IniPath.FullName, true); } } } } catch (Exception ex) { Log.Error(string.Format("Search for configurations failed.{0}{1}", Environment.NewLine, ex.Message), ex); throw; } }
public GrabConfiguration Execute(DirectoryInfo configurationDirectory) { try { ReportStatus("Loading configuration", ""); Log.Debug(string.Format("Loading user configuration from {0}", configurationDirectory.FullName)); var webGrabConfFile = Path.Combine(configurationDirectory.FullName, Settings.Default.WebGrabConfigFileName); if (File.Exists(webGrabConfFile)) { var userConfig = new GrabConfiguration(configurationDirectory); userConfig.Config = settings.LoadFromFile(webGrabConfFile); userConfig.Config.Path = new FileInfo(webGrabConfFile); var siteIniUserDir = new DirectoryInfo(Path.Combine(configurationDirectory.FullName, Settings.Default.SiteIniUser)); if (siteIniUserDir.Exists) { var listCountries = new ListCountries(siteIniUserDir); var countries = listCountries.Execute(); userConfig.Countries = countries; } Log.Debug(string.Format("Loaded user config {0}", userConfig.Name)); return(userConfig); } Log.WarnFormat("{0} not found in {1}", Settings.Default.WebGrabConfigFileName, configurationDirectory.FullName); return(null); } catch (Exception ex) { Log.Error(string.Format("Failed to load user configuration.{0}{1}", Environment.NewLine, ex.Message), ex); throw; } }
public WebGrabConfigForm(settings config, GrabConfiguration userConfig) { InitializeComponent(); this.config = config ?? throw new ArgumentNullException(nameof(config)); this.userConfig = userConfig; FillForm(); }
private void DeleteOldCountries(DirectoryInfo siteIniUserDir, GrabConfiguration configuration) { var directories = siteIniUserDir.GetDirectories(); foreach (var dir in directories) { if (!configuration.Countries.Any(x => x.Path.Name.ToLower() == dir.Name.ToLower())) { dir.Delete(true); } } }
public void Execute(GrabConfiguration configuration) { try { ReportStatus("Deleting configuration", ""); Log.Debug(string.Format("Deleting user configuration in {0}", configuration.Path.FullName)); Directory.Delete(configuration.Path.FullName, true); } catch (Exception ex) { Log.Error(string.Format("Failed to delete user configuration.{0}{1}", Environment.NewLine, ex.Message), ex); throw; } }
public void Execute(GrabConfiguration configuration) { try { ReportStatus("Saving configuration", ""); Log.Debug(string.Format("Saving user configuration in {0}", configuration.Path.FullName)); var siteIniUserDir = new DirectoryInfo(Path.Combine(configuration.Path.FullName, Settings.Default.SiteIniUser)); Directory.CreateDirectory(siteIniUserDir.FullName); DeleteOldCountries(siteIniUserDir, configuration); DeleteOldSites(siteIniUserDir, configuration); AddMissingSites(siteIniUserDir, configuration); Directory.CreateDirectory(configuration.Path.FullName); configuration.SaveToFile(); } catch (Exception ex) { Log.Error(string.Format("Failed to save user configuration.{0}{1}", Environment.NewLine, ex.Message), ex); throw; } }
public Process Execute(GrabConfiguration userConfig, bool hideWindow) { try { ReportStatus("Running configuration", userConfig.Name); ProcessStartInfo startInfo = new ProcessStartInfo { Arguments = "\"" + userConfig.Path.FullName + "\"", FileName = Settings.Default.WebGrabExePath, }; if (hideWindow) { startInfo.WindowStyle = ProcessWindowStyle.Hidden; } return(Process.Start(startInfo)); } catch (Exception ex) { Log.Error(string.Format("Failed to run configuration.{0}{1}", Environment.NewLine, ex.Message), ex); throw; } }