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); }
private BotInputOutput ToHtml(BotInputOutput input) { try { var xml = GetItem(input, "Report"); using (var ms = new MemoryStream(UnicodeEncoding.UTF8.GetBytes(xml))) { HealthcheckData healthcheckData = DataHelper <HealthcheckData> .LoadXml(ms, "bot", null); var endUserReportGenerator = PingCastleFactory.GetEndUserReportGenerator <HealthcheckData>(); var license = LicenseManager.Validate(typeof(Program), new Program()) as ADHealthCheckingLicense; var report = endUserReportGenerator.GenerateReportFile(healthcheckData, license, healthcheckData.GetHumanReadableFileName()); var o = new BotInputOutput(); o.Data = new List <BotData>(); AddData(o, "Status", "OK"); AddData(o, "Report", report); return(o); } } catch (Exception ex) { Console.WriteLine("Exception:" + ex.Message); Console.WriteLine("StackTrace:" + ex.StackTrace); return(ExceptionOutput("Exception during the job " + ex.Message, ex.StackTrace)); } }