Merge branch 'release/eni_7.2.3'
This commit is contained in:
commit
1c5fdd885b
@ -36,10 +36,19 @@ namespace ENI2.Controls
|
||||
closeButton.Click += (s, e) => { if (this.IsModal()) DialogResult = true; CloseClicked?.Invoke(); this.Close(); };
|
||||
refreshButton.Click += (s, e) => { RefreshClicked?.Invoke(); };
|
||||
|
||||
SettingBindingExtension stBinding = new SettingBindingExtension("W2Top");
|
||||
string topProperty = "W2Top";
|
||||
string leftProperty = "W2Left";
|
||||
if(this.GetType().Name == "ViolationListDialog")
|
||||
{
|
||||
topProperty = "W3Top";
|
||||
leftProperty = "W3Left";
|
||||
}
|
||||
|
||||
|
||||
SettingBindingExtension stBinding = new SettingBindingExtension(topProperty);
|
||||
this.SetBinding(Window.TopProperty, stBinding);
|
||||
|
||||
SettingBindingExtension slBinding = new SettingBindingExtension("W2Left");
|
||||
SettingBindingExtension slBinding = new SettingBindingExtension(leftProperty);
|
||||
this.SetBinding (Window.LeftProperty, slBinding);
|
||||
};
|
||||
}
|
||||
|
||||
@ -108,26 +108,40 @@ namespace ENI2
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasCriticalInfoMissing(out string messageText)
|
||||
public bool HasCriticalInfoMissing(out string messageText, string locode)
|
||||
{
|
||||
messageText = "";
|
||||
// Hier haben wir Logik für Spezialfälle, z.B. dass für BRE und BRV bestimmte Meldeklassen gesendet werden *müssen*
|
||||
|
||||
if(this.Core.PoC.Equals("DEBRV") || this.Core.PoC.Equals("DEBRE"))
|
||||
switch (locode)
|
||||
{
|
||||
foreach(Message aMessage in _messages)
|
||||
case "DEBRV":
|
||||
case "DEBRE":
|
||||
{
|
||||
if((aMessage.MessageNotificationClass == Message.NotificationClass.NOA_NOD) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "NOA_NOD"; return true; }
|
||||
foreach (Message aMessage in _messages)
|
||||
{
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.NOA_NOD) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "NOA_NOD"; return true; }
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.AGNT) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "AGNT"; return true; }
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.INFO) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "INFO"; return true; }
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.SEC) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "SEC"; return true; }
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.TIEFA) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "TIEFA"; return true; }
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "DEHAM":
|
||||
foreach (Message aMessage in _messages)
|
||||
{
|
||||
if ((aMessage.MessageNotificationClass == Message.NotificationClass.SERV) && (aMessage.InternalStatus != Message.BSMDStatus.CONFIRMED)) { messageText = "SERV"; return true; }
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Construction
|
||||
@ -416,6 +430,7 @@ namespace ENI2
|
||||
newMessage.SaveElements();
|
||||
}
|
||||
|
||||
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).LoadXtraData(newCore); // reload data from DB and set all rel properites
|
||||
this.OnOpenNewCoreRequested(newCore);
|
||||
}
|
||||
};
|
||||
@ -748,6 +763,7 @@ namespace ENI2
|
||||
Message mdhMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.MDH);
|
||||
Message was_rcptMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.WAS_RCPT);
|
||||
Message wasMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.WAS);
|
||||
Message servMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.SERV);
|
||||
|
||||
#region CREW / PAS Count Plausibility
|
||||
|
||||
@ -1085,6 +1101,22 @@ namespace ENI2
|
||||
|
||||
#endregion
|
||||
|
||||
#region SERV existence for DEHAM / DEBRE / DEBRV
|
||||
|
||||
if ((!this.Core.DisplayId.IsNullOrEmpty() && this.Core.DisplayId.StartsWith("DEHAM")) || this.Core.PoC.Equals("DEHAM") ||
|
||||
(!this.Core.DisplayId.IsNullOrEmpty() && this.Core.DisplayId.StartsWith("DEBRE")) || this.Core.PoC.Equals("DEBRE") ||
|
||||
(!this.Core.DisplayId.IsNullOrEmpty() && this.Core.DisplayId.StartsWith("DEBRV")) || this.Core.PoC.Equals("DEBRV"))
|
||||
{
|
||||
if (servMessage.Elements.Count == 0)
|
||||
{
|
||||
MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.LIST_EMPTY, "No entry for SERV found", null, "SERV service provider", null, "SERV");
|
||||
mv.MessageGroupName = Properties.Resources.textPortNotification;
|
||||
vViolations.Add(mv);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
foreach (MessageError me in vErrors)
|
||||
|
||||
@ -419,7 +419,7 @@ namespace ENI2.DetailViewControls
|
||||
{
|
||||
SERV newServ = new SERV();
|
||||
newServ.ServiceBeneficiary = "Maersk A/S, Esplanaden 50, DK-1263 Copenhagen K, VAT-ID: DK53139655";
|
||||
newServ.ServiceInvoiceRecipient = "Maersk Deutschland A/S & Co.KG, Ericusspitze 2-4, 20457 Hamburg";
|
||||
newServ.ServiceInvoiceRecipient = "Maersk Deutschland A/S & Co.KG, Johanniswall 7, 20095 Hamburg";
|
||||
newServ.ServiceName = "Maersk BHV";
|
||||
newServ.MessageHeader = this._servMessage;
|
||||
newServ.Identifier = SERV.GetNewIdentifier(_servMessage.Elements);
|
||||
@ -442,7 +442,7 @@ namespace ENI2.DetailViewControls
|
||||
{
|
||||
SERV newServ = new SERV();
|
||||
newServ.ServiceBeneficiary = "Sealand Europe A/S, Dampfaergevej 10, 3.tv, DK- 2100 Copenhagen, VAT-ID: DK53139655";
|
||||
newServ.ServiceInvoiceRecipient = "Maersk Deutschland A/S & Co. KG on behalf of Sealand Europe A/S, Ericusspitze 2-4, 20457 Hamburg";
|
||||
newServ.ServiceInvoiceRecipient = "Maersk Deutschland A/S & Co. KG on behalf of Sealand Europe A/S, Johanniswall 7, 20095 Hamburg";
|
||||
newServ.ServiceName = "SeaGo BHV";
|
||||
newServ.MessageHeader = this._servMessage;
|
||||
newServ.Identifier = SERV.GetNewIdentifier(_servMessage.Elements);
|
||||
@ -480,7 +480,7 @@ namespace ENI2.DetailViewControls
|
||||
bool found = false;
|
||||
foreach (SERV serv in this._servMessage.Elements)
|
||||
{
|
||||
if (serv.ServiceName.Equals("FCT JUNGE"))
|
||||
if (serv.ServiceName.Equals("Fct Junge - Hamburg"))
|
||||
found = true;
|
||||
}
|
||||
|
||||
@ -503,7 +503,7 @@ namespace ENI2.DetailViewControls
|
||||
bool found = false;
|
||||
foreach (SERV serv in this._servMessage.Elements)
|
||||
{
|
||||
if (serv.ServiceName.Equals("ELBE BULK"))
|
||||
if (serv.ServiceName.Equals("Elbe Bulk Schiffe - Hamburg"))
|
||||
found = true;
|
||||
}
|
||||
|
||||
@ -523,10 +523,12 @@ namespace ENI2.DetailViewControls
|
||||
|
||||
private void buttonSearchPortArea_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
SelectPortAreaDialog spad = new SelectPortAreaDialog(this.Core.PoC);
|
||||
if(spad.ShowDialog() ?? false)
|
||||
if (portAreas != null)
|
||||
{
|
||||
if(spad.SelectedArea != null)
|
||||
SelectPortAreaDialog spad = new SelectPortAreaDialog(this.Core.PoC);
|
||||
if (spad.ShowDialog() ?? false)
|
||||
{
|
||||
if (spad.SelectedArea != null)
|
||||
{
|
||||
if (portAreas.ContainsKey(spad.SelectedArea))
|
||||
{
|
||||
@ -536,6 +538,7 @@ namespace ENI2.DetailViewControls
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@ -185,12 +185,8 @@ namespace ENI2.DetailViewControls
|
||||
|
||||
#region init WSDP provider
|
||||
|
||||
if(_wsdpTemplates == null)
|
||||
{
|
||||
_wsdpTemplates = await DBManagerAsync.GetWastDisposalServiceProviderTemplatesAsync();
|
||||
_wsdpTemplates.Sort();
|
||||
Trace.WriteLine($"{_wsdpTemplates.Count} WSDP templates loaded");
|
||||
}
|
||||
InitTemplates();
|
||||
|
||||
this.comboBox_WSDPTemplate.ItemsSource = _wsdpTemplates;
|
||||
|
||||
#endregion
|
||||
@ -230,6 +226,7 @@ namespace ENI2.DetailViewControls
|
||||
this.dataGridWasteReceived.ItemsSource = null;
|
||||
dataGridWasteReceipt_SelectionChanged(this, null);
|
||||
}
|
||||
InitTemplates(); // templates might have changed in the dialog
|
||||
}
|
||||
|
||||
private void DataGridWasteReceipt_DeleteRequested(DatabaseEntity obj)
|
||||
@ -275,6 +272,7 @@ namespace ENI2.DetailViewControls
|
||||
this.dataGridWasteReceipt.Items.Refresh();
|
||||
this.SublistElementChanged(Message.NotificationClass.WAS_RCPT);
|
||||
dataGridWasteReceipt_SelectionChanged(this, null);
|
||||
InitTemplates(); // templates might have changed in the dialog
|
||||
}
|
||||
|
||||
private void DataGridWasteReceipt_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
||||
@ -601,6 +599,15 @@ namespace ENI2.DetailViewControls
|
||||
|
||||
#region Waste disposal Service Provider templates event handler
|
||||
|
||||
private async void InitTemplates()
|
||||
{
|
||||
_wsdpTemplates = await DBManagerAsync.GetWastDisposalServiceProviderTemplatesAsync();
|
||||
_wsdpTemplates.Sort();
|
||||
this.comboBox_WSDPTemplate.ItemsSource = null;
|
||||
this.comboBox_WSDPTemplate.ItemsSource = _wsdpTemplates;
|
||||
Trace.WriteLine($"{_wsdpTemplates.Count} WSDP templates loaded");
|
||||
}
|
||||
|
||||
private void comboBox_WSDPTemplate_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
Trace.WriteLine("WSDP combo selection changed");
|
||||
|
||||
@ -36,8 +36,8 @@
|
||||
<MinimumRequiredVersion>5.4.0.0</MinimumRequiredVersion>
|
||||
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
|
||||
<WebPage>publish.html</WebPage>
|
||||
<ApplicationRevision>8</ApplicationRevision>
|
||||
<ApplicationVersion>7.2.2.8</ApplicationVersion>
|
||||
<ApplicationRevision>3</ApplicationRevision>
|
||||
<ApplicationVersion>7.2.3.3</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<CreateDesktopShortcut>true</CreateDesktopShortcut>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
@ -460,9 +460,6 @@
|
||||
<Compile Include="Util\UIHelper.cs" />
|
||||
<Compile Include="Util\UtcToLocalDateTimeConverter.cs" />
|
||||
<Compile Include="Util\ValidationContext.cs" />
|
||||
<Compile Include="VorgaengeControl.xaml.cs">
|
||||
<DependentUpon>VorgaengeControl.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WindowPlacement.cs" />
|
||||
<Page Include="AnmeldungenControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
@ -759,10 +756,6 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="VorgaengeControl.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="56" />
|
||||
<RowDefinition Height="28" />
|
||||
<RowDefinition Height="28" />
|
||||
@ -30,16 +31,48 @@
|
||||
<Label Name="labelIdentificationNumber" Grid.Row="0" Grid.Column="0" Content="{x:Static p:Resources.textIdentificationNumber}" />
|
||||
<Label Name="labelPortReceptionFacilityName" Grid.Row="1" Grid.Column="0" Content="{x:Static p:Resources.textPortReceptionFacilityName}" />
|
||||
<Label Name="labelPortReceptionFacilityProviderName" Grid.Row="2" Grid.Column="0" Content="{x:Static p:Resources.textPortReceptionFacilityProviderName}" />
|
||||
<Label Name="labelTreatmentFacilityProvider" Grid.Row="3" Grid.Column="0" Content="{x:Static p:Resources.textTreatmentFacilityProviderDisplay}" />
|
||||
<Label Name="labelWasteDeliveryDateFrom" Grid.Row="4" Grid.Column="0" Content="{x:Static p:Resources.textWasteDeliveryDateFrom}" />
|
||||
<Label Name="labelWasteDeliveryDateTo" Grid.Row="5" Grid.Column="0" Content="{x:Static p:Resources.textWasteDeliveryDateTo}" />
|
||||
<Label Name="labelTemplate" Grid.Row="3" Grid.Column="0" Content="{x:Static p:Resources.textAgentTemplate}" />
|
||||
<Label Name="labelTreatmentFacilityProvider" Grid.Row="4" Grid.Column="0" Content="{x:Static p:Resources.textTreatmentFacilityProviderDisplay}" />
|
||||
<Label Name="labelWasteDeliveryDateFrom" Grid.Row="5" Grid.Column="0" Content="{x:Static p:Resources.textWasteDeliveryDateFrom}" />
|
||||
<Label Name="labelWasteDeliveryDateTo" Grid.Row="6" Grid.Column="0" Content="{x:Static p:Resources.textWasteDeliveryDateTo}" />
|
||||
|
||||
<TextBox Name="textIdentificationNumber" Grid.Row="0" Grid.Column="1" Width="auto" MaxLength="20" TextWrapping="Wrap" Margin="2" VerticalContentAlignment="Center"/>
|
||||
<TextBox Name="textBoxPortReceptionFacilityName" Grid.Row="1" Grid.Column="1" Width="auto" MaxLength="70" TextWrapping="Wrap" Margin="2" VerticalContentAlignment="Center"/>
|
||||
<TextBox Name="textBoxPortReceptionFacilityProviderName" Grid.Row="2" Grid.Column="1" Width="auto" MaxLength="70" TextWrapping="Wrap" Margin="2" VerticalContentAlignment="Center"/>
|
||||
<TextBox Name="textBoxTreatmentFacilityProvider" Grid.Row="3" Grid.Column="1" Height="56" VerticalContentAlignment="Top" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Row="4" Grid.Column="1" Name="dateTimePickerWasteDeliveryDateFrom" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2" AllowTextInput="True" ContextMenu="{DynamicResource ClearContextMenu}" TextAlignment="Left" Minimum="1899.12.31 00:00" Maximum="2100.12.31 00:00" PreviewKeyUp="DateTimePicker_PreviewKeyUp"/>
|
||||
<xctk:DateTimePicker Grid.Row="5" Grid.Column="1" Name="dateTimePickerWasteDeliveryDateTo" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2" AllowTextInput="True" ContextMenu="{DynamicResource ClearContextMenu}" TextAlignment="Left" Minimum="1899.12.31 00:00" Maximum="2100.12.31 00:00" PreviewKeyUp="DateTimePicker_PreviewKeyUp"/>
|
||||
<Grid Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="1" Name="gridTemplateControls" Visibility="Visible">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width=".5*"/>
|
||||
<ColumnDefinition Width=".5*"/>
|
||||
<!-- Name -->
|
||||
<ColumnDefinition Width="26"/>
|
||||
<!-- Save button -->
|
||||
<ColumnDefinition Width="26"/>
|
||||
<!-- Delete button -->
|
||||
<ColumnDefinition Width="52"/>
|
||||
<!-- Undo button -->
|
||||
</Grid.ColumnDefinitions>
|
||||
<ComboBox Grid.Column="0" Name="comboBox_WSDPTemplate" Margin="2" SelectedValuePath="Id" DisplayMemberPath="Remark" SelectionChanged="comboBox_WSDPTemplate_SelectionChanged" />
|
||||
<TextBox Grid.Column="1" Margin="2" Name="textBoxTemplateTitle" VerticalContentAlignment="Center"/>
|
||||
<Button Name="buttonSaveTemplate" Grid.Column="2" Grid.Row="0" Margin="2" Click="buttonSaveTemplate_Click" BorderThickness="0" Background="Transparent" ToolTip="Save template">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="../Resources/floppy_disk_blue.png" Margin="0,0,0,0" Height="20" Width="20" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<Button Name="buttonDeleteTemplate" Grid.Column="3" Grid.Row="0" Margin="2" Click="buttonDeleteTemplate_Click" BorderThickness="0" Background="Transparent" ToolTip="Delete template" IsEnabled="False">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="../Resources/delete.png" Margin="0,0,0,0" Height="20" Width="20" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<Button Name="buttonUndoTemplate" Grid.Column="4" Grid.Row="0" Margin="22,2,2,2" Click="buttonUndoTemplate_Click" BorderThickness="0" Background="Transparent" ToolTip="Undo last overwrite" IsEnabled="False">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Image Source="../Resources/undo.png" Margin="0,0,0,0" Height="20" Width="20" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<TextBox Name="textBoxTreatmentFacilityProvider" Grid.Row="4" Grid.Column="1" Height="56" VerticalContentAlignment="Top" Margin="2"/>
|
||||
<xctk:DateTimePicker Grid.Row="5" Grid.Column="1" Name="dateTimePickerWasteDeliveryDateFrom" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2" AllowTextInput="True" ContextMenu="{DynamicResource ClearContextMenu}" TextAlignment="Left" Minimum="1899.12.31 00:00" Maximum="2100.12.31 00:00" PreviewKeyUp="DateTimePicker_PreviewKeyUp"/>
|
||||
<xctk:DateTimePicker Grid.Row="6" Grid.Column="1" Name="dateTimePickerWasteDeliveryDateTo" Format="Custom" FormatString="dd.MM.yyyy HH:mm" ShowButtonSpinner="False" VerticalContentAlignment="Center" Margin="2" AllowTextInput="True" ContextMenu="{DynamicResource ClearContextMenu}" TextAlignment="Left" Minimum="1899.12.31 00:00" Maximum="2100.12.31 00:00" PreviewKeyUp="DateTimePicker_PreviewKeyUp"/>
|
||||
|
||||
<!--Button x:Name="buttonAddEntries" Grid.Column="1" Grid.Row="7" Margin="2" Click="buttonAddEntries_Click" Width="170" Content="Add waste received entries" HorizontalAlignment="Left"/-->
|
||||
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Windows;
|
||||
|
||||
using bsmd.database;
|
||||
@ -15,6 +17,13 @@ namespace ENI2.EditControls
|
||||
/// </summary>
|
||||
public partial class EditWasteReceiptDialog : EditWindowBase
|
||||
{
|
||||
|
||||
// TODO: "unstatic" the templates and take care they are synchronized between controls
|
||||
|
||||
private List<WasteDisposalServiceProvider_Template> _wsdpTemplates = null;
|
||||
private WasteDisposalServiceProvider_Template _currentTemplate;
|
||||
private string _undoTemplate;
|
||||
|
||||
public EditWasteReceiptDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -24,7 +33,7 @@ namespace ENI2.EditControls
|
||||
|
||||
public WAS_RCPT WAS_RCPT { get; set; }
|
||||
|
||||
private void EditWasteReceiptDialog_Loaded(object sender, RoutedEventArgs e)
|
||||
private async void EditWasteReceiptDialog_Loaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
this.textIdentificationNumber.Text = this.WAS_RCPT.IdentificationNumber;
|
||||
this.textBoxPortReceptionFacilityName.Text = this.WAS_RCPT.PortReceptionFacilityName;
|
||||
@ -35,6 +44,12 @@ namespace ENI2.EditControls
|
||||
|
||||
OKClicked += EditWasteReceiptDialog_OKClicked;
|
||||
this.AddVisible = true;
|
||||
|
||||
_wsdpTemplates = await DBManagerAsync.GetWastDisposalServiceProviderTemplatesAsync();
|
||||
_wsdpTemplates.Sort();
|
||||
Trace.WriteLine($"{_wsdpTemplates.Count} WSDP templates loaded");
|
||||
|
||||
this.comboBox_WSDPTemplate.ItemsSource = _wsdpTemplates;
|
||||
}
|
||||
public void CopyValuesToEntity()
|
||||
{
|
||||
@ -52,10 +67,87 @@ namespace ENI2.EditControls
|
||||
this.CopyValuesToEntity();
|
||||
}
|
||||
|
||||
private void comboBox_WSDPTemplate_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
|
||||
{
|
||||
Trace.WriteLine("WSDP combo selection changed");
|
||||
if (this.comboBox_WSDPTemplate.SelectedItem is WasteDisposalServiceProvider_Template wdsp_t)
|
||||
{
|
||||
this.textBoxTemplateTitle.Text = wdsp_t.Remark;
|
||||
this.buttonDeleteTemplate.IsEnabled = true;
|
||||
this._currentTemplate = wdsp_t;
|
||||
this._undoTemplate = this.textBoxPortReceptionFacilityProviderName.Text.Trim();
|
||||
this.buttonUndoTemplate.IsEnabled = this._undoTemplate.Length > 0;
|
||||
this.textBoxPortReceptionFacilityProviderName.Text = wdsp_t.WasteDisposalServiceProviderName;
|
||||
}
|
||||
}
|
||||
|
||||
private async void buttonSaveTemplate_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
string currentWSDPProviderName = this.textBoxPortReceptionFacilityProviderName.Text.Trim();
|
||||
string currentRemark = this.textBoxTemplateTitle.Text.Trim();
|
||||
|
||||
if ((currentWSDPProviderName.Length == 0) || (currentRemark.Length == 0)) return;
|
||||
|
||||
WasteDisposalServiceProvider_Template existingTemplate = null;
|
||||
foreach (WasteDisposalServiceProvider_Template wdsp_template in _wsdpTemplates)
|
||||
{
|
||||
// bei gefundenem Match wird ggf. der Remark überschrieben
|
||||
if (wdsp_template.Remark.Equals(currentRemark))
|
||||
{
|
||||
existingTemplate = wdsp_template;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (existingTemplate != null)
|
||||
{
|
||||
if (MessageBox.Show("A template with this name already exists, overwrite?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
|
||||
return;
|
||||
|
||||
existingTemplate.WasteDisposalServiceProviderName = currentWSDPProviderName;
|
||||
await DBManagerAsync.SaveAsync(existingTemplate);
|
||||
return;
|
||||
}
|
||||
|
||||
WasteDisposalServiceProvider_Template newTemplate = new WasteDisposalServiceProvider_Template();
|
||||
newTemplate.WasteDisposalServiceProviderName = currentWSDPProviderName;
|
||||
newTemplate.Remark = currentRemark;
|
||||
await DBManagerAsync.SaveAsync(newTemplate);
|
||||
|
||||
comboBox_WSDPTemplate.ItemsSource = null;
|
||||
_wsdpTemplates.Add(newTemplate);
|
||||
_wsdpTemplates.Sort();
|
||||
comboBox_WSDPTemplate.ItemsSource = _wsdpTemplates;
|
||||
MessageBox.Show("Template saved", "OK", MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
}
|
||||
|
||||
private void buttonDeleteTemplate_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (_currentTemplate != null)
|
||||
{
|
||||
if (MessageBox.Show("Delete this template?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
|
||||
{
|
||||
this.comboBox_WSDPTemplate.SelectedItem = null;
|
||||
this.comboBox_WSDPTemplate.ItemsSource = null;
|
||||
DBManager.Instance.Delete(_currentTemplate);
|
||||
_wsdpTemplates.Remove(_currentTemplate);
|
||||
this.textBoxTemplateTitle.Text = null;
|
||||
this.buttonDeleteTemplate.IsEnabled = false;
|
||||
this.comboBox_WSDPTemplate.ItemsSource = _wsdpTemplates;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void buttonUndoTemplate_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this._undoTemplate != null)
|
||||
{
|
||||
this.textBoxPortReceptionFacilityProviderName.Text = this._undoTemplate;
|
||||
this.buttonUndoTemplate.IsEnabled = false;
|
||||
this._undoTemplate = null;
|
||||
this.comboBox_WSDPTemplate.SelectedItem = null;
|
||||
}
|
||||
}
|
||||
|
||||
// private void buttonAddEntries_Click(object sender, RoutedEventArgs e)
|
||||
// {
|
||||
// this.WAS_RCPT.AddMissingWasteReceived();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@ -2147,7 +2147,7 @@ namespace ENI2.Excel
|
||||
if (canceled) return true;
|
||||
if (crew.CrewMemberIdentityDocumentIssuingState.IsNullOrEmpty() && isOldVersion)
|
||||
crew.CrewMemberIdentityDocumentIssuingState = "XX";
|
||||
crew.CrewMemberIdentityDocumentExpiryDate = reader.ReadCellAsDateTime(sheetTitle, string.Format("N{0}", i + 18));
|
||||
crew.CrewMemberIdentityDocumentExpiryDate = reader.ReadCellAsDateTime(sheetTitle, string.Format("N{0}", i + 18)) ?? (DateTime?)new DateTime(2100, 12, 31);
|
||||
if (!crew.CrewMemberIdentityDocumentExpiryDate.HasValue && isOldVersion)
|
||||
crew.CrewMemberIdentityDocumentExpiryDate = new DateTime(2100, 12, 31);
|
||||
|
||||
@ -2227,7 +2227,8 @@ namespace ENI2.Excel
|
||||
for (int i = 0; i < 5000; i++)
|
||||
{
|
||||
string lastName = reader.ReadCellAsText(sheetTitle, string.Format("C{0}", i + 18), 100);
|
||||
if (lastName.IsNullOrEmpty()) break;
|
||||
string firstName = reader.ReadCellAsText(sheetTitle, string.Format("D{0}", i + 18), 100);
|
||||
if (lastName.IsNullOrEmpty() && firstName.IsNullOrEmpty()) break;
|
||||
|
||||
if (!(crewdMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is CREWD crewd))
|
||||
{
|
||||
@ -2241,7 +2242,7 @@ namespace ENI2.Excel
|
||||
crewd.NotificationSchengen = true;
|
||||
crewd.NotificationPAX = notificationPax ?? false;
|
||||
crewd.CrewMemberLastName = lastName;
|
||||
crewd.CrewMemberFirstName = reader.ReadCellAsText(sheetTitle, string.Format("D{0}", i + 18), 100);
|
||||
crewd.CrewMemberFirstName = firstName;
|
||||
|
||||
crewd.CrewMemberGender = ReadGender(reader.ReadCellAsText(sheetTitle, string.Format("E{0}", i + 18)), out bool canceled);
|
||||
if (canceled) return true;
|
||||
@ -2522,7 +2523,7 @@ namespace ENI2.Excel
|
||||
if (canceled) return true;
|
||||
pas.PassengerIdentityDocumentId = reader.ReadCellAsText(sheetTitle, string.Format("N{0}", i + 18), 100);
|
||||
|
||||
pas.PassengerIdentityDocumentExpiryDate = reader.ReadCellAsDateTime(sheetTitle, string.Format("P{0}", i + 18)) ?? (DateTime?)new DateTime(2100, 12, 31);
|
||||
pas.PassengerIdentityDocumentExpiryDate = reader.ReadCellAsDateTime(sheetTitle, string.Format("P{0}", i + 18)) ?? (DateTime?)new DateTime(2100, 12, 31); ;
|
||||
|
||||
pas.PassengerVisaNumber = reader.ReadCellAsText(sheetTitle, string.Format("Q{0}", i + 18), 100);
|
||||
pas.EmergencyCare = reader.ReadCellAsText(sheetTitle, string.Format("R{0}", i + 18), 255);
|
||||
|
||||
@ -218,15 +218,26 @@ namespace ENI2
|
||||
// Dez.22: Special case for BRE/BRV: Warning if some messages are not "confirmed"
|
||||
if(drc.Core.PoC.Equals("DEBRE")||drc.Core.PoC.Equals("DEBRV"))
|
||||
{
|
||||
if(drc.HasCriticalInfoMissing(out string missingClass))
|
||||
if(drc.HasCriticalInfoMissing(out string missingClass, drc.Core.PoC))
|
||||
{
|
||||
_log.WarnFormat("set close warning because at least {0} is missing from BRE/BRV arrival", missingClass);
|
||||
// _log.WarnFormat("set close warning because at least {0} is missing from BRE/BRV/HAM arrival", missingClass);
|
||||
if (MessageBox.Show(string.Format(Properties.Resources.textSpecialCaseBREBRV, missingClass), Properties.Resources.textConfirmation, MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Jul.24: Special case HAM extended (from above)
|
||||
if (drc.Core.PoC.Equals("DEHAM"))
|
||||
{
|
||||
if (drc.HasCriticalInfoMissing(out string missingClass, drc.Core.PoC))
|
||||
{
|
||||
if (MessageBox.Show(string.Format(Properties.Resources.textSpecialCaseDEHAM, missingClass), Properties.Resources.textConfirmation, MessageBoxButton.YesNo,
|
||||
MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.No)
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!e.Cancel)
|
||||
{
|
||||
if (lockedCores.ContainsKey(tabItem))
|
||||
|
||||
11
ENI2/Properties/Resources.Designer.cs
generated
11
ENI2/Properties/Resources.Designer.cs
generated
@ -4674,7 +4674,7 @@ namespace ENI2.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to At least one of NOA_NOD, AGNT, INFO, SEC, TIEFA hasn't been sent for DEBRE/DEBRV: ({0}) Close anyway?.
|
||||
/// Looks up a localized string similar to At least one of NOA_NOD, AGNT, INFO, SEC, TIEFA, SERV hasn't been sent for DEBRE/DEBRV/DEHAM: ({0}) Close anyway?.
|
||||
/// </summary>
|
||||
public static string textSpecialCaseBREBRV {
|
||||
get {
|
||||
@ -4682,6 +4682,15 @@ namespace ENI2.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to {0} has not been sent for DEHAM. Close anyway?.
|
||||
/// </summary>
|
||||
public static string textSpecialCaseDEHAM {
|
||||
get {
|
||||
return ResourceManager.GetString("textSpecialCaseDEHAM", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Special requirements.
|
||||
/// </summary>
|
||||
|
||||
@ -1859,7 +1859,7 @@
|
||||
<value>Search NST2007 list</value>
|
||||
</data>
|
||||
<data name="textSpecialCaseBREBRV" xml:space="preserve">
|
||||
<value>At least one of NOA_NOD, AGNT, INFO, SEC, TIEFA hasn't been sent for DEBRE/DEBRV: ({0}) Close anyway?</value>
|
||||
<value>At least one of NOA_NOD, AGNT, INFO, SEC, TIEFA, SERV hasn't been sent for DEBRE/DEBRV/DEHAM: ({0}) Close anyway?</value>
|
||||
</data>
|
||||
<data name="about" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\about.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
@ -1900,4 +1900,7 @@
|
||||
<data name="textCopyToPASD" xml:space="preserve">
|
||||
<value>Copy to PASD</value>
|
||||
</data>
|
||||
<data name="textSpecialCaseDEHAM" xml:space="preserve">
|
||||
<value>{0} has not been sent for DEHAM. Close anyway?</value>
|
||||
</data>
|
||||
</root>
|
||||
26
ENI2/Properties/Settings.Designer.cs
generated
26
ENI2/Properties/Settings.Designer.cs
generated
@ -12,7 +12,7 @@ namespace ENI2.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
@ -161,5 +161,29 @@ namespace ENI2.Properties {
|
||||
this["W2Top"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public string W3Left {
|
||||
get {
|
||||
return ((string)(this["W3Left"]));
|
||||
}
|
||||
set {
|
||||
this["W3Left"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("0")]
|
||||
public string W3Top {
|
||||
get {
|
||||
return ((string)(this["W3Top"]));
|
||||
}
|
||||
set {
|
||||
this["W3Top"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,5 +41,11 @@
|
||||
<Setting Name="W2Top" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="W3Left" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="W3Top" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,13 +0,0 @@
|
||||
<UserControl x:Class="ENI2.VorgaengeControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:ENI2"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid Background="#FF9EF0E8">
|
||||
<Label x:Name="label" Content="Platzhalter für Vorgänge" HorizontalAlignment="Left" Margin="49,128,0,0" VerticalAlignment="Top"/>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
@ -1,29 +0,0 @@
|
||||
// Copyright (c) 2017 Informatibüro Daniel Schick
|
||||
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.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace ENI2
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for VorgaengeControl.xaml
|
||||
/// </summary>
|
||||
public partial class VorgaengeControl : UserControl
|
||||
{
|
||||
public VorgaengeControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,22 +10,26 @@ from collections import deque
|
||||
# get the current working directory
|
||||
|
||||
abspath = os.path.abspath(__file__)
|
||||
dname = os.path.dirname(abspath)
|
||||
# dname = os.path.dirname(abspath)
|
||||
dname = "E:\\temp\\telemetry"
|
||||
|
||||
outputFileName = dname + "\\" + 'output.csv'
|
||||
outputFileNameDBH = dname + "\\" + 'output_dbh.csv'
|
||||
outputFileNameHISNORD = dname + "\\" + 'output_hisnord.csv'
|
||||
|
||||
# open the output file
|
||||
outputFile = open(outputFileName, 'w')
|
||||
# open the output files
|
||||
outputFileDBH = open(outputFileNameDBH, 'w')
|
||||
outputFileHISNORD = open(outputFileNameHISNORD, 'w')
|
||||
|
||||
# write the header
|
||||
|
||||
outputFile.write('Receive time, Duration\n')
|
||||
outputFileDBH.write('Receive time, Duration, Message class, Attempts\n')
|
||||
outputFileHISNORD.write('Receive time, Duration, message class, Attemps\n')
|
||||
|
||||
# open the log files
|
||||
|
||||
q = deque()
|
||||
|
||||
for i in range(0, 10):
|
||||
for i in range(10, -1, -1):
|
||||
logFileName = dname + "\\" + 'log-NSWMessageService.txt.' + str(i)
|
||||
logFile = open(logFileName, 'r')
|
||||
|
||||
@ -38,6 +42,8 @@ for i in range(0, 10):
|
||||
# get substring of the date
|
||||
dateString = line[0:19]
|
||||
|
||||
|
||||
# kept old code for reference, but it does nothing
|
||||
if "Upload of" in line:
|
||||
# add the dateString to the queue
|
||||
q.appendleft(dateString)
|
||||
@ -54,9 +60,21 @@ for i in range(0, 10):
|
||||
|
||||
# calculate the duration
|
||||
duration = currentdate - lastdate
|
||||
outputFile.write(dateString + "," + str(duration.seconds) + "\n")
|
||||
|
||||
# outputFile.write(dateString + "," + str(duration.seconds) + "\n")
|
||||
|
||||
if "MessageTelemetry" in line:
|
||||
his = line[72:81].strip()
|
||||
msg_class = line[83:91].strip()
|
||||
duration = line[93:98]
|
||||
tries = line[100:102]
|
||||
if his == 'DUDR':
|
||||
outputFileHISNORD.write(dateString + "," + duration + "," + msg_class + "," + tries + "\n")
|
||||
elif his == 'DBH':
|
||||
outputFileDBH.write(dateString + "," + duration + "," + msg_class + "," + tries + "\n")
|
||||
|
||||
# close the log file
|
||||
logFile.close()
|
||||
|
||||
outputFile.close()
|
||||
outputFileDBH.close()
|
||||
outputFileHISNORD.close()
|
||||
@ -40,8 +40,8 @@
|
||||
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
|
||||
<Reference Include="log4net, Version=2.0.16.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.16\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="log4net" version="2.0.15" targetFramework="net48" />
|
||||
<package id="log4net" version="2.0.16" targetFramework="net48" />
|
||||
</packages>
|
||||
@ -40,8 +40,8 @@
|
||||
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
|
||||
<Reference Include="log4net, Version=2.0.16.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.16\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
@ -52,8 +52,8 @@
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WinSCPnet, Version=1.14.0.13797, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WinSCP.6.1.2\lib\net40\WinSCPnet.dll</HintPath>
|
||||
<Reference Include="WinSCPnet, Version=1.15.0.14890, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\WinSCP.6.3.2\lib\net40\WinSCPnet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@ -93,12 +93,12 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\packages\WinSCP.6.1.2\build\WinSCP.targets" Condition="Exists('..\packages\WinSCP.6.1.2\build\WinSCP.targets')" />
|
||||
<Import Project="..\packages\WinSCP.6.3.2\build\WinSCP.targets" Condition="Exists('..\packages\WinSCP.6.3.2\build\WinSCP.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\WinSCP.6.1.2\build\WinSCP.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\WinSCP.6.1.2\build\WinSCP.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\WinSCP.6.3.2\build\WinSCP.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\WinSCP.6.3.2\build\WinSCP.targets'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="log4net" version="2.0.15" targetFramework="net48" />
|
||||
<package id="WinSCP" version="6.1.2" targetFramework="net48" />
|
||||
<package id="log4net" version="2.0.16" targetFramework="net48" />
|
||||
<package id="WinSCP" version="6.3.2" targetFramework="net48" />
|
||||
</packages>
|
||||
@ -295,12 +295,7 @@ namespace bsmd.database
|
||||
List<MessageCore> result = new List<MessageCore>();
|
||||
foreach (MessageCore core in cores.Cast<MessageCore>())
|
||||
{
|
||||
this.LoadCustomer(core);
|
||||
this.LoadSTATShipName(core);
|
||||
this.LoadETA_ETD(core);
|
||||
this.LoadATA(core);
|
||||
this.LoadATD(core);
|
||||
this.LoadNumberSent(core);
|
||||
LoadXtraData(core);
|
||||
result.Add(core);
|
||||
}
|
||||
|
||||
@ -310,6 +305,16 @@ namespace bsmd.database
|
||||
return result;
|
||||
}
|
||||
|
||||
public void LoadXtraData(MessageCore core)
|
||||
{
|
||||
this.LoadCustomer(core);
|
||||
this.LoadSTATShipName(core);
|
||||
this.LoadETA_ETD(core);
|
||||
this.LoadATA(core);
|
||||
this.LoadATD(core);
|
||||
this.LoadNumberSent(core);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Lädt MessageCore (=Schiffsanlauf) einer EU-NOAD Nachricht vom Fleettracker / Herberg
|
||||
/// </summary>
|
||||
|
||||
75
bsmd.database/MessageTelemetry.cs
Normal file
75
bsmd.database/MessageTelemetry.cs
Normal file
@ -0,0 +1,75 @@
|
||||
// Copyright (c) 2024-present schick Informatik
|
||||
// Description: The purpose of telemetry is to record message transmission times (and failures)
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using log4net;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace bsmd.database
|
||||
{
|
||||
|
||||
public class MessageTelemetry
|
||||
{
|
||||
|
||||
#region Fields
|
||||
|
||||
private static readonly Dictionary<Message.NSWProvider, Dictionary<Guid, MessageTelemetry>> _telemetry = new Dictionary<Message.NSWProvider, Dictionary<Guid, MessageTelemetry>>();
|
||||
|
||||
private static readonly ILog _log = LogManager.GetLogger(typeof(MessageTelemetry));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Properties
|
||||
|
||||
public DateTime SendDate { get; private set; }
|
||||
|
||||
public int NumTries { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region public static methods
|
||||
|
||||
public static void Enqueue(Message.NSWProvider provider, Message message)
|
||||
{
|
||||
if (!_telemetry.ContainsKey(provider))
|
||||
_telemetry.Add(provider, new Dictionary<Guid, MessageTelemetry>());
|
||||
|
||||
if (_telemetry[provider].ContainsKey(message.Id.Value))
|
||||
{
|
||||
_telemetry[provider][message.Id.Value].NumTries++;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageTelemetry mt = new MessageTelemetry();
|
||||
mt.SendDate = DateTime.Now;
|
||||
mt.NumTries = 1;
|
||||
_telemetry[provider][message.Id.Value] = mt;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Dequeue(Message.NSWProvider provider, Message message)
|
||||
{
|
||||
if (_telemetry.ContainsKey(provider))
|
||||
{
|
||||
if (_telemetry[provider].ContainsKey(message.Id.Value))
|
||||
{
|
||||
MessageTelemetry mt = _telemetry[provider][message.Id.Value];
|
||||
_log.InfoFormat("[{0,10}][{1,8}][{2:00000}][{3:00}] ",provider, message.MessageNotificationClassDisplay, (DateTime.Now - mt.SendDate).TotalSeconds, mt.NumTries);
|
||||
_telemetry[provider].Remove(message.Id.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
_log.ErrorFormat("trying to deque a message from telemetry that we don't know about. Provider: {0} MessageId: {1}",
|
||||
provider.ToString(), message.Id.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,6 @@
|
||||
|
||||
[assembly: AssemblyCompany("schick Informatik")]
|
||||
[assembly: AssemblyProduct("BSMD NSW interface")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.2")]
|
||||
[assembly: AssemblyInformationalVersion("7.2.3")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2014-2024 schick Informatik")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
@ -1,4 +1,4 @@
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("7.2.2.*")]
|
||||
[assembly: AssemblyVersion("7.2.3.*")]
|
||||
|
||||
|
||||
@ -131,6 +131,7 @@
|
||||
<Compile Include="MaerskData.cs" />
|
||||
<Compile Include="MARPOL_Annex_I_Position.cs" />
|
||||
<Compile Include="MessageHistory.cs" />
|
||||
<Compile Include="MessageTelemetry.cs" />
|
||||
<Compile Include="NoTypeConverterJsonConverter.cs" />
|
||||
<Compile Include="PortArea.cs" />
|
||||
<Compile Include="Properties\AssemblyProductInfo.cs" />
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
extensions: designer.cs generated.cs
|
||||
extensions: .cs .cpp .h
|
||||
// Copyright (c) 2023-present schick Informatik
|
||||
// Copyright (c) 2024-present schick Informatik
|
||||
// Description:
|
||||
|
||||
extensions: .aspx .ascx
|
||||
<%--
|
||||
Copyright (c) 2023-present schick Informatik
|
||||
Copyright (c) 2024-present schick Informatik
|
||||
--%>
|
||||
extensions: .vb
|
||||
'Sample license text.
|
||||
|
||||
@ -114,6 +114,9 @@ namespace bsmd.dbh
|
||||
|
||||
#region send and receive files (SFTP)
|
||||
|
||||
/// <summary>
|
||||
/// this method handles the transmission of files by SFTP
|
||||
/// </summary>
|
||||
public static void SendAndReceive()
|
||||
{
|
||||
// sent unsent messages in output folder
|
||||
|
||||
@ -1832,6 +1832,8 @@ namespace bsmd.dbh
|
||||
serializer.Serialize(tw, root);
|
||||
}
|
||||
|
||||
MessageTelemetry.Enqueue(Message.NSWProvider.DBH, message);
|
||||
|
||||
return filePath;
|
||||
}
|
||||
catch(Exception ex)
|
||||
|
||||
@ -1,16 +1,12 @@
|
||||
// Copyright (c) 2020-present schick Informatik
|
||||
// Description: Verarbeitung von empfangenen Rückmeldungen
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
using log4net;
|
||||
using bsmd.database;
|
||||
using log4net;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace bsmd.dbh
|
||||
{
|
||||
@ -80,6 +76,8 @@ namespace bsmd.dbh
|
||||
return result;
|
||||
}
|
||||
|
||||
MessageTelemetry.Dequeue(Message.NSWProvider.DBH, sentMessage);
|
||||
|
||||
switch(root.Type)
|
||||
{
|
||||
case Response.RootType.VISIT:
|
||||
|
||||
@ -38,8 +38,8 @@
|
||||
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
|
||||
<Reference Include="log4net, Version=2.0.16.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.16\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="log4net" version="2.0.15" targetFramework="net48" />
|
||||
<package id="log4net" version="2.0.16" targetFramework="net48" />
|
||||
</packages>
|
||||
@ -1822,6 +1822,8 @@ namespace bsmd.hisnord
|
||||
|
||||
retval = true;
|
||||
|
||||
MessageTelemetry.Enqueue(Message.NSWProvider.DUDR, message);
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
@ -88,6 +88,7 @@ namespace bsmd.hisnord
|
||||
refMessage.InternalStatus = Message.BSMDStatus.SEND_FAILED;
|
||||
systemError.MessageHeaderId = refMessage.Id;
|
||||
DBManager.Instance.Save(refMessage);
|
||||
MessageTelemetry.Dequeue(Message.NSWProvider.DUDR, refMessage);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -101,6 +102,7 @@ namespace bsmd.hisnord
|
||||
refMessage.InternalStatus = Message.BSMDStatus.SEND_FAILED;
|
||||
systemError.MessageHeaderId = refMessage.Id;
|
||||
DBManager.Instance.Save(refMessage);
|
||||
MessageTelemetry.Dequeue(Message.NSWProvider.DUDR, refMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -253,6 +255,8 @@ namespace bsmd.hisnord
|
||||
|
||||
DBManager.Instance.Save(aMessage);
|
||||
|
||||
MessageTelemetry.Dequeue(Message.NSWProvider.DUDR, aMessage);
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
@ -38,8 +38,8 @@
|
||||
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
|
||||
<Reference Include="log4net, Version=2.0.16.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.16\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="log4net" version="2.0.15" targetFramework="net48" />
|
||||
<package id="log4net" version="2.0.16" targetFramework="net48" />
|
||||
</packages>
|
||||
@ -38,8 +38,8 @@
|
||||
<AssemblyOriginatorKeyFile>..\bsmdKey.snk</AssemblyOriginatorKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
|
||||
<Reference Include="log4net, Version=2.0.16.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.16\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Configuration" />
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="log4net" version="2.0.15" targetFramework="net48" />
|
||||
<package id="log4net" version="2.0.16" targetFramework="net48" />
|
||||
</packages>
|
||||
BIN
misc/db.sqlite
BIN
misc/db.sqlite
Binary file not shown.
@ -4,7 +4,7 @@
|
||||
2) Prüfen ob das ENI App logo richtig ist
|
||||
3) VS: Publish: Folder Location und Url richtig auswählen
|
||||
4) Signing: "Sign the ClickOnce manifests": Hier für Prod das Zertifikat
|
||||
Schiffsmelder CA auswählen, das am 02/24 abläuft.
|
||||
Schiffsmelder CA auswählen, das am 11.2.25 abläuft.
|
||||
Auswahl über "Select from Store.."
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user