public void HandleMessage(TransfersPerTripReportCommand command) { Logger.DebugFormat("Received message command of type {0} ", command.GetType()); var statusReport = new ReportStatus(); try { NHibernateHelper.CreateSession(); Logger.Debug("Nhibernate session created"); ProcessGenerateTransfersPerTripReportCommand(command, statusReport); NHibernateHelper.CloseSession(); Logger.Debug("Nhibernate close session"); } catch (Exception e) { statusReport.Error = true; Logger.Error(e); ReportService.NotifyError(command, e.Message); throw; } finally { ReportService.LogReportExecution(command.ReportId, statusReport); } }
private void ProcessGenerateTransfersPerTripReportCommand(TransfersPerTripReportCommand command, ReportStatus statusReport) { using ( var reportStream = ReportService.GenerateTransfersPerTripReport(command, statusReport)) { if (reportStream == null) { ReportService.SendEmptyReport(command, command.ReportName, false); } ReportService.SendReport(reportStream, command, command.ReportName); } }