diff --git a/ENI2/DetailRootControl.xaml.cs b/ENI2/DetailRootControl.xaml.cs index 640f47a0..4b70e7ba 100644 --- a/ENI2/DetailRootControl.xaml.cs +++ b/ENI2/DetailRootControl.xaml.cs @@ -736,11 +736,13 @@ namespace ENI2 } #region 12.11.18 / 6.3.21 / 23.5.22: globale Plausi-Prüfungen + Message crewaMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.CREWA); Message crewdMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.CREWD); Message pasaMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.PASA); Message pasdMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.PASD); Message pobaMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.POBA); + Message pobdMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.POBD); Message secMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.SEC); Message noanodMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.NOA_NOD); Message mdhMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.MDH); @@ -755,17 +757,34 @@ namespace ENI2 if (crewaMessage.Elements.Count != poba.TotalCrewMembersOnBoardUponArrival) { - MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "POBA crew member count different from CREW count!", null, "Crew count mismatch", null, "CREW"); + MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "POBA crew member count different from CREW count!", null, "Crew count mismatch", null, "CREWA"); mv.MessageGroupName = Properties.Resources.textOverview; vViolations.Add(mv); } if(pasaMessage.Elements.Count != poba.TotalPassengersOnBoardUponArrival) { - MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "POBA passenger count different from PAS count!", null, "Passenger count mismatch", null, "PAS"); + MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "POBA passenger count different from PAS count!", null, "Passenger count mismatch", null, "PASA"); mv.MessageGroupName = Properties.Resources.textOverview; vViolations.Add(mv); } + + POBD pobd = pobdMessage.Elements[0] as POBD; + + if (crewdMessage.Elements.Count != pobd.TotalCrewMembersOnBoardUponDeparture) + { + MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "POBD crew member count different from CREW count!", null, "Crew count mismatch", null, "CREWD"); + mv.MessageGroupName = Properties.Resources.textOverview; + vViolations.Add(mv); + } + + if (pasdMessage.Elements.Count != pobd.TotalPassengersOnBoardUponDeparture) + { + MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "POBD passenger count different from PAS count!", null, "Passenger count mismatch", null, "PASD"); + mv.MessageGroupName = Properties.Resources.textOverview; + vViolations.Add(mv); + } + } #endregion