public void HandleMessage(EventReportCommand command) { Logger.DebugFormat("Received message command of type {0} ", command.GetType()); var statusReport = new ReportStatus(); try { NHibernateHelper.CreateSession(); Logger.Debug("Nhibernate session created"); ProcessGenerateEventDailyReportCommand(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 ProcessGenerateEventDailyReportCommand(EventReportCommand command, ReportStatus statusReport) { using ( var reportStream = ReportService.GenerateEventReport(command, statusReport)) { if (reportStream == null) { ReportService.SendEmptyReport(command, command.ReportName, false); } ReportService.SendReport(reportStream, command, command.ReportName); } }