From 94d306277006e526f95441d58b95320b4f2f8962 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Thu, 23 Nov 2017 18:44:57 +0000 Subject: [PATCH] =?UTF-8?q?3.8.8.1:=20Weitere=20Korrekturen=20und=20statis?= =?UTF-8?q?che=20Validierungsregeln=20umgesetzt,=20dazu=20einige=20=C3=84n?= =?UTF-8?q?derungen=20von=20Christin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ENI2/Controls/ReportingPartyControl.xaml | 2 +- .../Controls/ReportingPartyControl.xaml.cs | 4 +- .../ENI2/Controls/ServerStatusControl.xaml | 39 +++++ .../ENI2/Controls/ServerStatusControl.xaml.cs | 125 ++++++++++++++++ .../ArrivalNotificationDetailControl.xaml | 4 +- .../BorderPoliceDetailControl.xaml.cs | 2 +- .../DepartureNotificationDetailControl.xaml | 2 +- .../OverViewDetailControl.xaml | 18 +-- .../OverViewDetailControl.xaml.cs | 4 + .../PortCallDetailControl.xaml | 12 +- .../SecurityDetailControl.xaml | 4 +- .../ShipDataDetailControl.xaml | 2 +- ENI-2/ENI2/ENI2/ENI2.csproj | 15 +- .../EditCallPurposeDialog.xaml.cs | 2 +- .../EditPortOfItineraryDialog.xaml | 2 +- .../ENI2/EditControls/ErrorListDialog.xaml | 8 +- .../ENI2/EditControls/NewWithIdDialog.xaml | 2 +- .../ENI2/EditControls/NewWithIdDialog.xaml.cs | 11 +- .../EditControls/ViolationListDialog.xaml | 8 +- ENI-2/ENI2/ENI2/MainWindow.xaml | 4 +- ENI-2/ENI2/ENI2/MainWindow.xaml.cs | 52 ++++++- .../ENI2/Properties/Resources.Designer.cs | 9 ++ ENI-2/ENI2/ENI2/Properties/Resources.resx | 3 + ...ngServiceReference.ServerStatus.datasource | 10 ++ .../LockingService.wsdl | 19 +++ .../LockingService.xsd | 6 + .../LockingService1.xsd | 12 ++ .../LockingService2.xsd | 12 ++ .../LockingServiceReference/Reference.cs | 139 ++++++++++++++++++ ENI-2/ENI2/ENI2/Util/GlobalStructures.cs | 63 +++++--- nsw/Source/bsmd.ExcelReadService/ExcelBase.cs | 37 +++-- .../bsmd.ExcelReadService/ExcelWriter.cs | 5 +- nsw/Source/bsmd.ExcelReadService/Util.cs | 5 + nsw/Source/bsmd.LockingService/IService.cs | 4 + .../bsmd.LockingService/LockingService.svc.cs | 59 ++++++++ .../Properties/Settings.Designer.cs | 35 +++++ .../Properties/Settings.settings | 9 ++ .../bsmd.LockingService/ServerStatus.cs | 14 +- nsw/Source/bsmd.LockingService/Web.config | 12 ++ .../bsmd.LockingService.csproj | 10 ++ nsw/Source/bsmd.LockingService/index.htm | 11 +- .../bsmd.ReportGenerator/BSMDDocument.cs | 26 ++-- .../bsmd.ReportGenerator/ReportService.cs | 1 + nsw/Source/bsmd.database/AGNT.cs | 3 + nsw/Source/bsmd.database/BPOL.cs | 6 +- nsw/Source/bsmd.database/Extensions.cs | 6 + nsw/Source/bsmd.database/HAZ.cs | 21 +-- nsw/Source/bsmd.database/LADG.cs | 4 +- nsw/Source/bsmd.database/MDH.cs | 29 ++-- nsw/Source/bsmd.database/Message.cs | 4 +- nsw/Source/bsmd.database/NOA_NOD.cs | 7 +- nsw/Source/bsmd.database/PortOfItinerary.cs | 2 +- .../Properties/AssemblyProductInfo.cs | 2 +- .../Properties/AssemblyProjectInfo.cs | 2 +- nsw/Source/bsmd.database/SEC.cs | 12 +- nsw/Source/bsmd.database/STAT.cs | 6 +- nsw/Source/bsmd.database/WAS.cs | 12 +- nsw/Source/bsmd.database/Waste.cs | 7 +- .../WasteDisposalServiceProvider.cs | 1 + 59 files changed, 795 insertions(+), 152 deletions(-) create mode 100644 ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml create mode 100644 ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml.cs create mode 100644 ENI-2/ENI2/ENI2/Service References/LockingServiceReference/ENI2.LockingServiceReference.ServerStatus.datasource create mode 100644 nsw/Source/bsmd.LockingService/Properties/Settings.Designer.cs create mode 100644 nsw/Source/bsmd.LockingService/Properties/Settings.settings diff --git a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml index 1406220a..2058f9a3 100644 --- a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml +++ b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml @@ -12,7 +12,7 @@ + AutoGenerateColumns="False" > diff --git a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs index 35595f9c..197b7033 100644 --- a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs @@ -7,7 +7,7 @@ using System.Windows; using bsmd.database; using ENI2.EditControls; -using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Windows.Controls; namespace ENI2.Controls @@ -23,7 +23,7 @@ namespace ENI2.Controls Loaded += ReportingPartyControl_Loaded; } - public List ReportingParties { get; set; } + public ObservableCollection ReportingParties { get; set; } private void ReportingPartyControl_Loaded(object sender, RoutedEventArgs e) { diff --git a/ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml b/ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml new file mode 100644 index 00000000..f9fad8bc --- /dev/null +++ b/ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml.cs new file mode 100644 index 00000000..63883306 --- /dev/null +++ b/ENI-2/ENI2/ENI2/Controls/ServerStatusControl.xaml.cs @@ -0,0 +1,125 @@ +// Copyright (c) 2017 schick Informatik +// Description: Controls zur Statusanzeige auf dem Server +// + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Windows.Controls; +using System.Text.RegularExpressions; +using System.Globalization; + +using log4net; +using bsmd.database; +using System.ServiceProcess; + +namespace ENI2.Controls +{ + /// + /// Interaction logic for ServerStatusControl.xaml + /// + public partial class ServerStatusControl : UserControl + { + + private ObservableCollection entries = new ObservableCollection(); + private static Regex regex = new Regex(@"BSMD_(\d*)-(.*)-(\w*)"); + private static ILog _log = LogManager.GetLogger("ServerStatus"); + + public ServerStatusControl() + { + InitializeComponent(); + this.dataGridStatus.ItemsSource = this.entries; + } + + internal void Update(LockingServiceReference.ServerStatus serverStatus) + { + + System.Windows.Application.Current.Dispatcher.Invoke(delegate { + // Die Dateien müssen in die Objekte + entries.Clear(); + foreach (StatusEntry se in StatusEntry.CreateFromList(serverStatus.IMPFiles, "IMP")) + entries.Add(se); + + foreach (StatusEntry se in StatusEntry.CreateFromList(serverStatus.READYFiles, "READY")) + entries.Add(se); + + foreach (StatusEntry se in StatusEntry.CreateFromList(serverStatus.CORRUPTFiles, "CORRUPT")) + entries.Add(se); + + // Enumeration parsen und text ausgeben + ServiceControllerStatus excel = (ServiceControllerStatus)serverStatus.Excel; + this.labelStatusExcel.Content = excel.ToString(); + + ServiceControllerStatus report = (ServiceControllerStatus)serverStatus.Report; + this.labelStatusReport.Content = report.ToString(); + + ServiceControllerStatus transmitter = (ServiceControllerStatus)serverStatus.Transmitter; + this.labelStatusTransmitter.Content = transmitter.ToString(); + //this.dataGridStatus.Items.Refresh(); + }); + } + + public class StatusEntry + { + private static Dictionary guidIdDict = new Dictionary(); + + public string Class { get; set; } + + public DateTime Timestamp { get; set; } + + public string Id { get; set; } + + public string Status { get; set; } + + public static List CreateFromList(string[] aList, string status) + { + List result = new List(); + + foreach(string listEntry in aList) + { + if (regex.IsMatch(listEntry)) + { + try + { + StatusEntry entry = new StatusEntry(); + Match m = regex.Match(listEntry); + entry.Timestamp = DateTime.ParseExact(m.Groups[1].Value, "yyyyMMddHHmmss", CultureInfo.InvariantCulture); + + string guidString = m.Groups[2].Value; + + if (!guidIdDict.ContainsKey(guidString)) + { + string idString = ""; + Guid coreId; + if (Guid.TryParse(m.Groups[2].Value, out coreId)) + { + MessageCore aCore = DBManager.Instance.GetMessageCoreById(coreId); + if (aCore != null) + { + idString = aCore.DisplayId; + } + } + guidIdDict[guidString] = idString; + } + + entry.Id = guidIdDict[guidString]; + entry.Class = m.Groups[3].Value; + entry.Status = status; + + result.Add(entry); + } + catch(Exception ex) + { + _log.WarnFormat("Problem reading status info: {0}", ex.Message); + } + } + } + + return result; + } + + } + + } + +} diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml index 080d9eea..8f38bf2d 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml @@ -27,7 +27,7 @@ @@ -66,7 +66,7 @@ + AutoGenerateColumns="False" Margin="0,5,0,0"> diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs index caa1b4ab..0b3ec763 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs @@ -451,7 +451,7 @@ namespace ENI2.DetailViewControls if (importCrew.Count > 0) { - this.dataGridCrewList.Items.Refresh(); + this.dataGridCrewList.Items.Refresh(); this.SublistElementChanged(Message.NotificationClass.CREW); MessageBox.Show(String.Format(Properties.Resources.textCrewImported, importCrew.Count), Properties.Resources.textCaptionInformation, MessageBoxButton.OK, MessageBoxImage.Information); } diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml index 9d7998a3..22d4dd13 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml @@ -27,7 +27,7 @@ diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml index 2644a35f..a20461f4 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml @@ -67,20 +67,15 @@