Esempio n. 1
0
        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();
                            }
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
 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;
     }
 }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
 public WebGrabConfigForm(settings config, GrabConfiguration userConfig)
 {
     InitializeComponent();
     this.config     = config ?? throw new ArgumentNullException(nameof(config));
     this.userConfig = userConfig;
     FillForm();
 }
Esempio n. 6
0
        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);
                }
            }
        }
Esempio n. 7
0
 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;
     }
 }
Esempio n. 8
0
 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;
     }
 }
Esempio n. 9
0
 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;
     }
 }