Exemple #1
0
        private static bool TryWriteComparisonResults(ComparisonConfig config, ScrapeComparisonResult comparisonResult)
        {
            try
            {
                JObject toSerialize = JObject.FromObject(comparisonResult);

                string outputDirectory = Path.GetDirectoryName(config.ComparisonResultFile);
                if (!Directory.Exists(outputDirectory))
                {
                    Directory.CreateDirectory(outputDirectory);
                }

                File.WriteAllText(config.ComparisonResultFile, toSerialize.ToString());
                return(true);
            }
            catch
            {
                return(false);
            }
        }
        // For now, it's just going to check the packs between the two runs
        // As desired, add more comparisons, and expand the definition of ScrapeComparisonResult
        public bool Compare(out ScrapeComparisonResult result)
        {
            if (!TryReadScraperOutput(_config.ScraperOutputOneFile, out TemplateDiscoveryMetadata scraperOutputOne) ||
                !TryReadScraperOutput(_config.ScraperOutputTwoFile, out TemplateDiscoveryMetadata scraperOutputTwo))
            {
                result = null;
                return(false);
            }

            // In one but not two
            HashSet <string> scraperOnePacks = new HashSet <string>(scraperOutputOne.PackToTemplateMap.Keys);

            scraperOnePacks.ExceptWith(scraperOutputTwo.PackToTemplateMap.Keys);

            // In two but not one
            HashSet <string> scraperTwoPacks = new HashSet <string>(scraperOutputTwo.PackToTemplateMap.Keys);

            scraperTwoPacks.ExceptWith(scraperOutputOne.PackToTemplateMap.Keys);

            result = new ScrapeComparisonResult(_config.ScraperOutputOneFile, _config.ScraperOutputTwoFile, scraperOnePacks.ToList(), scraperTwoPacks.ToList());
            return(true);
        }