private void WriteReport(DateTimeServiceForTests dateTimeService, MeetingTimes lastMtgTimes) { var service = new LocalTimingDataStoreService(null, dateTimeService); var historicalTimes = service.GetHistoricalMeetingTimes(); PdfTimingReport report = new PdfTimingReport(lastMtgTimes, historicalTimes, Path.GetTempPath()); report.Execute(); }
// generate report and return file path (or null) public static Task <string?> ExecuteAsync( ILocalTimingDataStoreService dataService, IDateTimeService dateTimeService, IQueryWeekendService queryWeekendService, bool weekendIncludesFriday, string?commandLineIdentifier) { return(Task.Run(() => { if (!dataService.ValidCurrentMeetingTimes()) { dataService.PurgeCurrentMeetingTimes(); Log.Logger.Warning("Meeting times invalid so not stored"); return null; } var outputFolder = FileUtils.GetTimingReportsFolder(commandLineIdentifier); Log.Logger.Debug($"Timer report output folder = {outputFolder}"); if (string.IsNullOrEmpty(outputFolder) || !Directory.Exists(outputFolder)) { return null; } var yearFolder = GetDatedOutputFolder(outputFolder, dateTimeService.Now()); Directory.CreateDirectory(yearFolder); if (Directory.Exists(yearFolder)) { var data = dataService.GetCurrentMeetingTimes(); if (data != null) { var historicalTimes = dataService.GetHistoricalMeetingTimes(); var report = new PdfTimingReport( data, historicalTimes, queryWeekendService, weekendIncludesFriday, yearFolder); return report.Execute(); } } return null; })); }