From fb48538223b0ac6e4c3c3a6e441cc4c565bd06cf Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Wed, 20 Jan 2021 09:07:12 +0000 Subject: [PATCH] Version 6.0.10 abgeschlossen --- ENI-2/ENI2/ENI2/App.config | 8 +- .../OverViewDetailControl.xaml.cs | 122 ++++-------------- .../EditControls/MessageSendStatusDialog.xaml | 81 +++++++++++- .../MessageSendStatusDialog.xaml.cs | 90 ++++++++++--- ENI-2/ENI2/ENI2/MainWindow.xaml.cs | 1 + .../ENI2/ENI2/Util/DatabaseEntityWatchdog.cs | 9 +- ENI-2/ENI2/ENI2/Util/UIHelper.cs | 101 +++++++++++++++ Stundensheet.xlsx | Bin 45724 -> 45745 bytes nsw/Source/SQL/Update_6.1_To_6.0.10.sql | 16 +++ nsw/Source/bsmd.database/MessageCore.cs | 5 +- 10 files changed, 307 insertions(+), 126 deletions(-) diff --git a/ENI-2/ENI2/ENI2/App.config b/ENI-2/ENI2/ENI2/App.config index 4ef4fabb..84d7bb33 100644 --- a/ENI-2/ENI2/ENI2/App.config +++ b/ENI-2/ENI2/ENI2/App.config @@ -26,12 +26,12 @@ 1000 - - http://heupferd/bsmd.LockingService/LockingService.svc + http://192.168.2.24/LockingService/LockingService.svc + - - Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False + Initial Catalog=nsw;Data Source=192.168.2.24\SQLEXPRESS;Uid=dfuser;pwd=dfpasswd;Persist Security Info=False;Connection Reset=false + diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs index 73fd8eea..2327546c 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml.cs @@ -29,6 +29,7 @@ namespace ENI2.DetailViewControls private Timer _checkStatusTimer; private DateTime _startStatusCheck; private readonly object _collectionLock = new object(); + private MessageSendStatusDialog mssd = null; public OverViewDetailControl() { @@ -267,101 +268,8 @@ namespace ENI2.DetailViewControls #region Meldeklassen einrichten und Icons / Gruppen / Index zuordnen - foreach (Message aMessage in this.Messages) - { - switch (aMessage.MessageNotificationClass) - { - case Message.NotificationClass.VISIT: - case Message.NotificationClass.TRANSIT: - aMessage.ENINotificationDetailGroup = Properties.Resources.textOverview; - aMessage.ENINotificationIconString = "../Resources/documents.png"; - aMessage.ENINotificationDetailIndex = 0; - break; - case Message.NotificationClass.NOA_NOD: - case Message.NotificationClass.AGNT: - aMessage.ENINotificationIconString = "../Resources/eye_blue.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textPortCall; - aMessage.ENINotificationDetailIndex = 1; - break; - case Message.NotificationClass.NAME: - case Message.NotificationClass.INFO: - case Message.NotificationClass.SERV: - case Message.NotificationClass.LADG: - aMessage.ENINotificationIconString = "../Resources/anchor.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textPortNotification; - aMessage.ENINotificationDetailIndex = 2; - break; - case Message.NotificationClass.WAS: - aMessage.ENINotificationIconString = "../Resources/garbage.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textWaste; - aMessage.ENINotificationDetailIndex = 3; - break; - case Message.NotificationClass.ATA: - case Message.NotificationClass.POBA: - case Message.NotificationClass.TIEFA: - case Message.NotificationClass.BKRA: - aMessage.ENINotificationIconString = "../Resources/arrow_down_right_red.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textArrivalNotification; - aMessage.ENINotificationDetailIndex = 4; - break; - case Message.NotificationClass.SEC: - aMessage.ENINotificationIconString = "../Resources/shield_yellow.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textSecurity; - aMessage.ENINotificationDetailIndex = 5; - break; - case Message.NotificationClass.PRE72H: - aMessage.ENINotificationIconString = "../Resources/alarmclock.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textPSC72h; - aMessage.ENINotificationDetailIndex = 6; - break; - case Message.NotificationClass.MDH: - aMessage.ENINotificationIconString = "../Resources/medical_bag.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textMDH; - aMessage.ENINotificationDetailIndex = 7; - break; - case Message.NotificationClass.ATD: - case Message.NotificationClass.TIEFD: - case Message.NotificationClass.BKRD: - case Message.NotificationClass.POBD: - aMessage.ENINotificationIconString = "../Resources/arrow_up_right_green.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textDepartureNotification; - aMessage.ENINotificationDetailIndex = 8; - break; - case Message.NotificationClass.STAT: - aMessage.ENINotificationIconString = "../Resources/containership.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textShipData; - aMessage.ENINotificationDetailIndex = 9; - break; - case Message.NotificationClass.BPOL: - case Message.NotificationClass.CREW: - case Message.NotificationClass.PAS: - aMessage.ENINotificationIconString = "../Resources/policeman_german.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textBorderPolice; - aMessage.ENINotificationDetailIndex = 10; - break; - - case Message.NotificationClass.HAZA: - aMessage.ENINotificationIconString = "../Resources/sign_warning_radiation.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textDGArrival; - aMessage.ENINotificationDetailIndex = 11; - break; - case Message.NotificationClass.HAZD: - aMessage.ENINotificationIconString = "../Resources/sign_warning_radiation.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textDGDeparture; - aMessage.ENINotificationDetailIndex = 12; - break; - case Message.NotificationClass.TOWA: - case Message.NotificationClass.TOWD: - aMessage.ENINotificationIconString = "../Resources/ship2.png"; - aMessage.ENINotificationDetailGroup = Properties.Resources.textTowage; - aMessage.ENINotificationDetailIndex = 13; - break; - default: - aMessage.ENINotificationDetailGroup = "unspecified"; - break; - } - } - + Util.UIHelper.SetMessageIcons(this.Messages); + #endregion #region Meldeklassen nach ihrem Vorkommen in den Detailansichten sortieren (SH, 12.5.17) @@ -506,6 +414,7 @@ namespace ENI2.DetailViewControls return; } + List watchList = new List(); foreach (Message selectedMessage in this.dataGridMessages.SelectedItems) { if (selectedMessage.Reset) selectedMessage.Reset = false; // "nochmal" Versenden ist möglich @@ -518,15 +427,36 @@ namespace ENI2.DetailViewControls selectedMessage.ChangedBy = string.Format("{0} at {1} (Send)", userName, DateTime.Now); selectedMessage.StatusInfo = string.Format(Properties.Resources.textMessageSentAt, DateTime.Now); DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(selectedMessage); + watchList.Add(selectedMessage); } // komplette Anmeldung auf "zu versenden" stellen this.Core.BSMDStatusInternal = MessageCore.BSMDStatus.TOSEND; this.Core.DefaultReportingPartyId = App.UserId; - DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(this.Core); + DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(this.Core); // löst auch den Watchdog aus this.OnRequestSendValidation(); this.dataGridMessages.Items.Refresh(); + + if (this.mssd == null) + { + this.mssd = new MessageSendStatusDialog(this.Core); + this.mssd.Closed += (s,args) => { this.mssd = null; }; + this.mssd.SendComplete += (() => { + this.Dispatcher.Invoke(() => + { + if (this.mssd != null) + { + this.mssd.Close(); + this.OnRequestReload(this.Core.Id.Value); + } + }); + }); + this.mssd.Show(); + } + + this.mssd.AddMessages(watchList); + } } diff --git a/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml b/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml index d595b9ae..f38c028b 100644 --- a/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml +++ b/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml @@ -4,14 +4,85 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ENI2.EditControls" + xmlns:util="clr-namespace:ENI2.Util" xmlns:enictrl="clr-namespace:ENI2.Controls" xmlns:p="clr-namespace:ENI2.Properties" mc:Ignorable="d" - Title="{x:Static p:Resources.textMessageStatus}" Height="450" Width="400" Loaded="StatusWindowBase_Loaded"> + Title="{x:Static p:Resources.textMessageStatus}" Height="450" Width="800" Loaded="StatusWindowBase_Loaded" Closing="StatusWindowBase_Closing"> - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml.cs index 1f5a80d2..bc3087bf 100644 --- a/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml.cs +++ b/ENI-2/ENI2/ENI2/EditControls/MessageSendStatusDialog.xaml.cs @@ -2,23 +2,12 @@ // Description: Overview of messages currently in transmission // -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; -using System.Timers; using bsmd.database; using ENI2.Controls; -using log4net; +using System; +using System.Collections.Generic; +using System.Timers; +using System.Windows; namespace ENI2.EditControls { @@ -28,30 +17,93 @@ namespace ENI2.EditControls public partial class MessageSendStatusDialog : StatusWindowBase { private readonly Timer bgTimer; + private List _messages = new List(); + private MessageCore _messageCore; - public MessageSendStatusDialog() + public MessageSendStatusDialog(MessageCore core) { InitializeComponent(); this.bgTimer = new Timer(); + _messageCore = core; this.bgTimer.Elapsed += BgTimer_Elapsed; this.bgTimer.AutoReset = true; this.bgTimer.Interval = Properties.Settings.Default.changeTimerTimeout; } - List Messages { get; set; } + public void AddMessages(List messages) + { + if (!messages.IsNullOrEmpty()) + { + foreach (Message newMessage in messages) + { + if (!_messages.Contains(newMessage)) + _messages.Add(newMessage); + } + this.RefreshGrid(); + } + } + + public event Action SendComplete; + + private void RefreshGrid() + { + this.Dispatcher.Invoke(() => + { + Util.UIHelper.SetMessageIcons(_messages); + this.dataGridMessages.ItemsSource = null; + this.dataGridMessages.ItemsSource = _messages; + }); + } private void BgTimer_Elapsed(object sender, ElapsedEventArgs e) { // check if a message has changed its status + bool updatedMessage = false; + bool finished = true; + System.Diagnostics.Trace.WriteLine(string.Format("Watching {0} messages.", _messages.Count)); + for (int i = 0; i < _messages.Count; i++) + { + Message testMessage = (Message) DBManager.Instance.GetMessageById(_messages[i].Id.Value); + + if(testMessage.Changed > _messages[i].Changed) + { + _messages[i] = testMessage; // replace Message in Array with "newer" Message + updatedMessage = true; + System.Diagnostics.Trace.WriteLine(string.Format("Updating {0} To status {1}", testMessage.Id, testMessage.InternalStatus)); + } + finished &= (testMessage.InternalStatus != Message.BSMDStatus.TOSEND); + } + + if (finished) + { + _messageCore.IsHighlighted = true; + this.OnSendComplete(); + } + + if(updatedMessage) + { + this.RefreshGrid(); + } } private void StatusWindowBase_Loaded(object sender, RoutedEventArgs e) + { + this.bgTimer.Start(); + this.dataGridMessages.DataContext = _messages; + } + + protected void OnSendComplete() { - if (!this.Messages.IsNullOrEmpty()) - this.bgTimer.Start(); + this.SendComplete?.Invoke(); + } + + private void StatusWindowBase_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + this.bgTimer.Stop(); + this.bgTimer.Dispose(); } } } diff --git a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs index d4f04749..755ad485 100644 --- a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs +++ b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs @@ -510,6 +510,7 @@ namespace ENI2 if (tabitem is ClosableTabItem closableTabItem) (closableTabItem).IsHighlighted = true; })); + changedCore.IsHighlighted = false; } } } diff --git a/ENI-2/ENI2/ENI2/Util/DatabaseEntityWatchdog.cs b/ENI-2/ENI2/ENI2/Util/DatabaseEntityWatchdog.cs index 77ad22f0..2b846810 100644 --- a/ENI-2/ENI2/ENI2/Util/DatabaseEntityWatchdog.cs +++ b/ENI-2/ENI2/ENI2/Util/DatabaseEntityWatchdog.cs @@ -42,12 +42,19 @@ namespace ENI2.Util MessageCore entity = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessageCoreById(watchedEntity.Id ?? Guid.Empty); if (entity != null) { - if (entity.Changed > this._watchedEntities[watchedEntity]) + // Der Core muss einen dieser Zustände einnehmen bevor das Highlighting erlaubt ist. Diese Zustände werden im Send Prozess gesetzt + // (wenn die Nachrichten bearbeitet sind) + bool isValidState = (entity.BSMDStatusInternal == MessageCore.BSMDStatus.FAILURE) || + (entity.BSMDStatusInternal == MessageCore.BSMDStatus.SENT) || + (entity.BSMDStatusInternal == MessageCore.BSMDStatus.PREPARE); + + if (isValidState && ((entity.Changed > this._watchedEntities[watchedEntity]) || watchedEntity.IsHighlighted)) { OnDatabaseEntityChanged(entity); changedCores.Add(entity); } + // Test ob eventuell Visit/Transit-ID inzwischen gesetzt wurde if(entity.IsTransit) { if (!entity.TransitId.IsNullOrEmpty() && watchedEntity.TransitId.IsNullOrEmpty() && !entity.TransitId.Equals(watchedEntity.TransitId)) diff --git a/ENI-2/ENI2/ENI2/Util/UIHelper.cs b/ENI-2/ENI2/ENI2/Util/UIHelper.cs index 354677b0..f8535e19 100644 --- a/ENI-2/ENI2/ENI2/Util/UIHelper.cs +++ b/ENI-2/ENI2/ENI2/Util/UIHelper.cs @@ -4,12 +4,15 @@ // https://stackoverflow.com/a/7482321 using System; +using System.Collections.Generic; using System.Reflection; using System.Windows; using System.Windows.Input; using System.Windows.Media; using System.Windows.Threading; +using bsmd.database; + namespace ENI2.Util { public static class UIHelper @@ -56,5 +59,103 @@ namespace ENI2.Util return Color.FromRgb((byte) r.Next(150, 255), (byte) r.Next(150, 255), (byte) r.Next(150, 255)); } + public static void SetMessageIcons(List messages) + { + foreach (Message aMessage in messages) + { + switch (aMessage.MessageNotificationClass) + { + case Message.NotificationClass.VISIT: + case Message.NotificationClass.TRANSIT: + aMessage.ENINotificationDetailGroup = Properties.Resources.textOverview; + aMessage.ENINotificationIconString = "../Resources/documents.png"; + aMessage.ENINotificationDetailIndex = 0; + break; + case Message.NotificationClass.NOA_NOD: + case Message.NotificationClass.AGNT: + aMessage.ENINotificationIconString = "../Resources/eye_blue.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textPortCall; + aMessage.ENINotificationDetailIndex = 1; + break; + case Message.NotificationClass.NAME: + case Message.NotificationClass.INFO: + case Message.NotificationClass.SERV: + case Message.NotificationClass.LADG: + aMessage.ENINotificationIconString = "../Resources/anchor.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textPortNotification; + aMessage.ENINotificationDetailIndex = 2; + break; + case Message.NotificationClass.WAS: + aMessage.ENINotificationIconString = "../Resources/garbage.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textWaste; + aMessage.ENINotificationDetailIndex = 3; + break; + case Message.NotificationClass.ATA: + case Message.NotificationClass.POBA: + case Message.NotificationClass.TIEFA: + case Message.NotificationClass.BKRA: + aMessage.ENINotificationIconString = "../Resources/arrow_down_right_red.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textArrivalNotification; + aMessage.ENINotificationDetailIndex = 4; + break; + case Message.NotificationClass.SEC: + aMessage.ENINotificationIconString = "../Resources/shield_yellow.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textSecurity; + aMessage.ENINotificationDetailIndex = 5; + break; + case Message.NotificationClass.PRE72H: + aMessage.ENINotificationIconString = "../Resources/alarmclock.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textPSC72h; + aMessage.ENINotificationDetailIndex = 6; + break; + case Message.NotificationClass.MDH: + aMessage.ENINotificationIconString = "../Resources/medical_bag.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textMDH; + aMessage.ENINotificationDetailIndex = 7; + break; + case Message.NotificationClass.ATD: + case Message.NotificationClass.TIEFD: + case Message.NotificationClass.BKRD: + case Message.NotificationClass.POBD: + aMessage.ENINotificationIconString = "../Resources/arrow_up_right_green.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textDepartureNotification; + aMessage.ENINotificationDetailIndex = 8; + break; + case Message.NotificationClass.STAT: + aMessage.ENINotificationIconString = "../Resources/containership.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textShipData; + aMessage.ENINotificationDetailIndex = 9; + break; + case Message.NotificationClass.BPOL: + case Message.NotificationClass.CREW: + case Message.NotificationClass.PAS: + aMessage.ENINotificationIconString = "../Resources/policeman_german.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textBorderPolice; + aMessage.ENINotificationDetailIndex = 10; + break; + + case Message.NotificationClass.HAZA: + aMessage.ENINotificationIconString = "../Resources/sign_warning_radiation.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textDGArrival; + aMessage.ENINotificationDetailIndex = 11; + break; + case Message.NotificationClass.HAZD: + aMessage.ENINotificationIconString = "../Resources/sign_warning_radiation.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textDGDeparture; + aMessage.ENINotificationDetailIndex = 12; + break; + case Message.NotificationClass.TOWA: + case Message.NotificationClass.TOWD: + aMessage.ENINotificationIconString = "../Resources/ship2.png"; + aMessage.ENINotificationDetailGroup = Properties.Resources.textTowage; + aMessage.ENINotificationDetailIndex = 13; + break; + default: + aMessage.ENINotificationDetailGroup = "unspecified"; + break; + } + } + } + } } diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 65bbdb275939a319204394da0f82e931ccd42551..872f656aa287160c1ba515f3c80d88b8b6564d0f 100644 GIT binary patch delta 24875 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 delta 24793 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 diff --git a/nsw/Source/SQL/Update_6.1_To_6.0.10.sql b/nsw/Source/SQL/Update_6.1_To_6.0.10.sql index 8cf99b7d..ae2da3f7 100644 --- a/nsw/Source/SQL/Update_6.1_To_6.0.10.sql +++ b/nsw/Source/SQL/Update_6.1_To_6.0.10.sql @@ -8,4 +8,20 @@ GO ALTER TABLE [dbo].[MessageCore] ADD [POATA] DATETIME NULL; +GO + +-- genauere Auflösung für Changed Spalte! + +PRINT N'Altering [dbo].[MessageHeader]...'; + +GO +ALTER TABLE [dbo].[MessageHeader] ALTER COLUMN [Changed] DATETIME NULL; + +GO + +PRINT N'Altering [dbo].[MessageCore]...'; + +GO +ALTER TABLE [dbo].[MessageCore] ALTER COLUMN [Changed] DATETIME NULL; + GO \ No newline at end of file diff --git a/nsw/Source/bsmd.database/MessageCore.cs b/nsw/Source/bsmd.database/MessageCore.cs index e20bf7b7..f5baab54 100644 --- a/nsw/Source/bsmd.database/MessageCore.cs +++ b/nsw/Source/bsmd.database/MessageCore.cs @@ -323,7 +323,10 @@ namespace bsmd.database #region Flag properties not backed by field - + /// + /// ENI helper to mark this Core in Overview (tabheader) + /// + public bool IsHighlighted { get; set; } #endregion