예제 #1
0
        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);
            }
        }
예제 #2
0
 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);
     }
 }