// Have to switch from enum to concrete type, since you can't pass a type parameter through a WCF call. Ideally this wouldn't exist. public static ILeasePakReportParser GetParserFromReportEnum(Constants.LeasePakReporting.Report report) { switch (report) { case Constants.LeasePakReporting.Report.PreAuthorizedPayments: return(LeasePakReportParserFactory.Create <PreAuthorizedPaymentReportParser>()); case Constants.LeasePakReporting.Report.CashReceipts: return(LeasePakReportParserFactory.Create <CashReceiptsReportParser>()); } throw new NotImplementedException($"Report type {report} has not yet had a report parser implemented for it."); }
public LeasePakReportingResponse ParseLeasePakReport(DateTime businessDay, string portfolio, Constants.LeasePakReporting.Report report) { var logger = LogRepository.GetLogger <ReportingDemo>(); logger.Info($"Initiating request. Business Day: {businessDay:MM/dd/yyyy}, Portfolio: {portfolio}, Report: {report}"); var reportParser = GetParserFromReportEnum(report); logger.Info($"Initiating report parsing."); var parsedReport = reportParser.Parse(businessDay, portfolio); var success = parsedReport != null; logger.Info($"Report parsing complete. Success: {success}"); var response = new LeasePakReportingResponse(parsedReport, success); logger.Info($"Request complete. Response: {response}"); return(response); }
protected AbstractLeasePakReportParser(Constants.LeasePakReporting.Report report) { Report = report; }