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