public static PingCastleReportCollection <T> LoadXmls(string Xmls, DateTime maxfiltervalue)
        {
            var output = new PingCastleReportCollection <T>();
            int files  = 0;

            foreach (string filename in Directory.GetFiles(Xmls, PingCastleFactory.GetFilePatternForLoad <T>(), SearchOption.AllDirectories))
            {
                try
                {
                    files++;
                    T data = DataHelper <T> .LoadXml(filename);

                    // taking the more recent report
                    if (data.GenerationDate > maxfiltervalue)
                    {
                        Trace.WriteLine("File " + filename + " ignored because generation date " + data.GenerationDate.ToString("u") + " is after the consolidation date " + maxfiltervalue.ToString("u"));
                        continue;
                    }
                    output.Add(data);
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Unable to load the file " + filename + " (" + ex.Message + ")");
                    Console.ResetColor();
                    Trace.WriteLine("Unable to load the file " + filename + " (" + ex.Message + ")");
                    Trace.WriteLine(ex.StackTrace);
                }
            }
            Console.WriteLine("Reports loaded: " + output.Count + " - on a total of " + files + " valid files");
            output.EnrichInformation();
            return(output);
        }
        public static PingCastleReportCollection <HealthcheckData> TransformReportsToDemo(PingCastleReportCollection <HealthcheckData> consolidation)
        {
            string rotKey = GenerateRandomRotKey();

            var output = new PingCastleReportCollection <HealthcheckData>();

            foreach (HealthcheckData data in consolidation)
            {
                HealthcheckData demoreport = TransformReportToDemo(rotKey, data);
                output.Add(demoreport);
            }
            return(output);
        }