示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }