From ae1747f2f38bddea5af94db6a22d496e93a5330e Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Thu, 15 Dec 2022 08:36:38 +0100 Subject: [PATCH] small bugfixes --- bsmd.dbh/ResponseUtil.cs | 69 +++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/bsmd.dbh/ResponseUtil.cs b/bsmd.dbh/ResponseUtil.cs index 5599c741..c670e0b1 100644 --- a/bsmd.dbh/ResponseUtil.cs +++ b/bsmd.dbh/ResponseUtil.cs @@ -103,23 +103,23 @@ namespace bsmd.dbh } break; case Response.RootType.DATA: - if(root.ReportingClassesFull.ReportingClass.Length > 0) + if(root.ReportingClassesFull?.ReportingClass.Length > 0) { - _log.InfoFormat("Message {0} confirmed (full), {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages.Length); + _log.InfoFormat("Message {0} confirmed (full), {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages?.Length); sentMessage.SendSuccess = true; sentMessage.Status = Message.MessageStatus.ACCEPTED; sentMessage.InternalStatus = Message.BSMDStatus.CONFIRMED; } - if (root.ReportingClassesPartial.ReportingClass.Length > 0) + if (root.ReportingClassesPartial?.ReportingClass.Length > 0) { - _log.WarnFormat("Message {0} confirmed (partial), {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages.Length); + _log.WarnFormat("Message {0} confirmed (partial), {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages?.Length); sentMessage.SendSuccess = true; sentMessage.Status = Message.MessageStatus.ACCEPTED; sentMessage.InternalStatus = Message.BSMDStatus.VIOLATION; } - if (root.ReportingClassesError.ReportingClass.Length > 0) + if (root.ReportingClassesError?.ReportingClass.Length > 0) { - _log.ErrorFormat("Message {0} rejected, {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages.Length); + _log.ErrorFormat("Message {0} rejected, {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages?.Length); sentMessage.SendSuccess = false; sentMessage.Status = Message.MessageStatus.REJECTED; sentMessage.InternalStatus = Message.BSMDStatus.ERROR; @@ -127,7 +127,7 @@ namespace bsmd.dbh } break; case Response.RootType.RESET: - if(root.ReportingClassesResetted.ReportingClass.Length > 0) + if(root.ReportingClassesResetted?.ReportingClass.Length > 0) { _log.InfoFormat("Message {0} RESET confirmed, {1} messages", sentMessage.MessageNotificationClassDisplay, root.Messages.Length); ; sentMessage.SendSuccess = false; // bestätigter Reset setzt grünen Buppel zurück @@ -148,34 +148,37 @@ namespace bsmd.dbh foreach (MessageViolation existingViolation in sentMessage.ViolationList) DBManager.Instance.Delete(existingViolation); - foreach (Response.RootMessage rootMessage in root.Messages) + if (root.Messages != null) { - _log.InfoFormat("Message[{0}]: {1} {2} {3}", rootMessage.ID, rootMessage.Type, rootMessage.Location, rootMessage.Text); - switch(rootMessage.Type) + foreach (Response.RootMessage rootMessage in root.Messages) { - case Response.RootMessageType.ERROR: - MessageError me = new MessageError(); - me.MessageHeaderId = sentMessage.Id.Value; - me.MessageHeader = sentMessage; - me.ErrorText = rootMessage.Text; - DBManager.Instance.Save(me); - break; - case Response.RootMessageType.VIOLATION: - MessageViolation mv = new MessageViolation(); - mv.MessageHeaderId = sentMessage.Id.Value; - mv.MessageHeader = sentMessage; - mv.ViolationText = rootMessage.Text; - DBManager.Instance.Save(mv); - break; - case Response.RootMessageType.XSD_ERROR: - // TODO - break; - case Response.RootMessageType.INFO: - // TODO - break; - case Response.RootMessageType.WARNING: - // TODO - break; + _log.InfoFormat("Message[{0}]: {1} {2} {3}", rootMessage.ID, rootMessage.Type, rootMessage.Location, rootMessage.Text); + switch (rootMessage.Type) + { + case Response.RootMessageType.ERROR: + MessageError me = new MessageError(); + me.MessageHeaderId = sentMessage.Id.Value; + me.MessageHeader = sentMessage; + me.ErrorText = rootMessage.Text; + DBManager.Instance.Save(me); + break; + case Response.RootMessageType.VIOLATION: + MessageViolation mv = new MessageViolation(); + mv.MessageHeaderId = sentMessage.Id.Value; + mv.MessageHeader = sentMessage; + mv.ViolationText = rootMessage.Text; + DBManager.Instance.Save(mv); + break; + case Response.RootMessageType.XSD_ERROR: + // TODO + break; + case Response.RootMessageType.INFO: + // TODO + break; + case Response.RootMessageType.WARNING: + // TODO + break; + } } }