1038 lines
52 KiB
C#
1038 lines
52 KiB
C#
// Copyright (c) 2025 - schick Informatik
|
|
// Description: Display control of formsheet Tab 1. Voyage
|
|
//
|
|
|
|
using System.Windows;
|
|
|
|
using bsmd.database;
|
|
using ENI2.EditControls;
|
|
using System.Windows.Controls;
|
|
using System;
|
|
using ENI2.Util;
|
|
using System.Collections.Generic;
|
|
using ExcelDataReader;
|
|
using Microsoft.Win32;
|
|
using System.IO;
|
|
|
|
|
|
namespace ENI2.SheetDisplayControls
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for VoyageControl.xaml
|
|
/// </summary>
|
|
public partial class VoyageControl : DetailBaseControl
|
|
{
|
|
#region Fields
|
|
|
|
private BPOL _bpol;
|
|
private NOA_NOD _noanod;
|
|
private SEC _sec;
|
|
private PRE72H _pre72h;
|
|
private INFO _info;
|
|
private STAT _stat;
|
|
private MDH _mdh;
|
|
|
|
private static readonly string[] shippingAreas = {
|
|
Properties.Resources.textShippingAreaNORTHBALTIC,
|
|
Properties.Resources.textShippingAreaEUROPE,
|
|
Properties.Resources.textShippingAreaOverseas
|
|
};
|
|
|
|
#endregion
|
|
|
|
#region Construction
|
|
|
|
public VoyageControl()
|
|
{
|
|
InitializeComponent();
|
|
Loaded += VoyageControl_Loaded;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region public override
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
foreach (Message aMessage in this.Messages)
|
|
{
|
|
if (aMessage.Elements.Count == 0) continue;
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.BPOL) { this._bpol = aMessage.Elements[0] as BPOL; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.NOA_NOD) { this._noanod = aMessage.Elements[0] as NOA_NOD; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.SEC) { this._sec = aMessage.Elements[0] as SEC; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.PRE72H) { this._pre72h = aMessage.Elements[0] as PRE72H; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.INFO) { this._info = aMessage.Elements[0] as INFO; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.STAT) { this._stat = aMessage.Elements[0] as STAT; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.MDH) { this._mdh = aMessage.Elements[0] as MDH; this.ControlMessages.Add(aMessage); }
|
|
}
|
|
|
|
// 1.1
|
|
this.locodeControl_LastPort.DataContext = _noanod;
|
|
this.dateTimePicker_ETDFromLastPort.DataContext = _noanod;
|
|
|
|
// 1.2
|
|
this.checkBoxKielCanalPassagePlanned_Checked(null, null);
|
|
this.checkBoxKielCanalPassagePlanned.DataContext = _sec;
|
|
this.dateTimePickerKielCanalPassagePlannedIncomming.DataContext = _sec;
|
|
|
|
// 1.3
|
|
this.locodePoC.DataContext = this.Core;
|
|
this.dateTimePickerETA.DataContext = this._noanod;
|
|
this.dateTimePickerETD.DataContext = this._noanod;
|
|
this.doubleUpDownPlannedPeriodOfStay.DataContext = this._pre72h;
|
|
|
|
// 1.4
|
|
this.checkBoxKielCanalPassagePlannedOutgoing.DataContext = this._sec;
|
|
this.dateTimePickerKielCanalPassagePlannedOutgoing.DataContext = _sec;
|
|
|
|
// 1.5
|
|
this.locodeControl_NextPort.DataContext = _noanod;
|
|
this.dateTimePicker_ETAToNextPort.DataContext = _noanod;
|
|
|
|
// 1.6
|
|
this.comboBoxShippingArea.ItemsSource = shippingAreas;
|
|
this.comboBoxShippingArea.DataContext = _info;
|
|
this.comboBoxTransportMode.ItemsSource = STAT.TransportModeDict;
|
|
this.comboBoxTransportMode.DataContext = _stat;
|
|
|
|
// 1.7
|
|
this.dataGridLast10PortFacilities.Initialize();
|
|
this.dataGridLast10PortFacilities.ItemsSource = _sec.LastTenPortFacilitesCalled;
|
|
this.textBlockNumL10PEntries.DataContext = _sec;
|
|
|
|
this.dataGridLast10PortFacilities.AddingNewItem += DataGridLast10PortFacilities_AddingNewItem;
|
|
this.dataGridLast10PortFacilities.EditRequested += DataGridLast10PortFacilities_EditRequested;
|
|
this.dataGridLast10PortFacilities.DeleteRequested += DataGridLast10PortFacilities_DeleteRequested;
|
|
this.dataGridLast10PortFacilities.CreateRequested += DataGridLast10PortFacilities_CreateRequested;
|
|
|
|
// 1.8
|
|
this.textBlockNumS2SEntries.DataContext = _sec;
|
|
this.dataGridShip2ShipActivities.Initialize();
|
|
foreach (ShipToShipActivitiesDuringLastTenPortFacilitiesCalled s2s in _sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled)
|
|
{
|
|
if (s2s.ShipToShipActivityTypeCode.HasValue && s2s.ShipToShipActivityType.IsNullOrEmpty() && GlobalStructures.Edifact8025.ContainsKey(s2s.ShipToShipActivityTypeCode.Value))
|
|
s2s.ShipToShipActivityType = GlobalStructures.Edifact8025[s2s.ShipToShipActivityTypeCode.Value];
|
|
}
|
|
this.dataGridShip2ShipActivities.ItemsSource = _sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled;
|
|
this.dataGridShip2ShipActivities.AddingNewItem += DataGridShip2ShipActivities_AddingNewItem;
|
|
this.dataGridShip2ShipActivities.EditRequested += DataGridShip2ShipActivities_EditRequested;
|
|
this.dataGridShip2ShipActivities.DeleteRequested += DataGridShip2ShipActivities_DeleteRequested;
|
|
this.dataGridShip2ShipActivities.CreateRequested += DataGridShip2ShipActivities_CreateRequested;
|
|
|
|
// 1.9
|
|
this.textBlockNumPoCEntries.DataContext = _mdh;
|
|
this.dataGridPortOfCallLast30Days.Initialize();
|
|
this.dataGridPortOfCallLast30Days.ItemsSource = _mdh.PortOfCallLast30Days;
|
|
this.dataGridPortOfCallLast30Days.AddingNewItem += DataGridPortOfCallLast30Days_AddingNewItem;
|
|
this.dataGridPortOfCallLast30Days.EditRequested += DataGridPortOfCallLast30Days_EditRequested;
|
|
this.dataGridPortOfCallLast30Days.DeleteRequested += DataGridPortOfCallLast30Days_DeleteRequested;
|
|
this.dataGridPortOfCallLast30Days.CreateRequested += DataGridPortOfCallLast30Days_CreateRequested;
|
|
|
|
// 1.10
|
|
this.checkBoxHasShipVisited.DataContext = _mdh;
|
|
this.checkBoxHasShipVisited.Checked += CheckBoxHasShipVisited_Checked;
|
|
this.checkBoxHasShipVisited.Unchecked += CheckBoxHasShipVisited_Checked;
|
|
this.CheckBoxHasShipVisited_Checked(null, null);
|
|
this.integerUpDownNumberOfDeaths.DataContext = _mdh;
|
|
|
|
this.checkBoxHavePersonsDied.DataContext = _mdh;
|
|
this.checkBoxHavePersonsDied.Checked += CheckBoxHavePersonsDied_Checked;
|
|
this.checkBoxHavePersonsDied.Unchecked += CheckBoxHavePersonsDied_Checked;
|
|
this.CheckBoxHavePersonsDied_Checked(null, null);
|
|
|
|
this.checkBoxTotalNumberSickHigherThan.DataContext = _mdh;
|
|
this.checkBoxTotalNumberSickHigherThan.Checked += CheckBoxTotalNumberSickHigherThan_Checked;
|
|
this.checkBoxTotalNumberSickHigherThan.Unchecked += CheckBoxTotalNumberSickHigherThan_Checked;
|
|
this.CheckBoxTotalNumberSickHigherThan_Checked(null, null);
|
|
this.integerUpDownNumberOfIllPersons.DataContext = _mdh;
|
|
this.checkBoxSickPersonsOnBoard.DataContext = _mdh;
|
|
this.checkBoxWasMedicalConsulted.DataContext = _mdh;
|
|
this.checkBoxAwareOfConditions.DataContext = _mdh;
|
|
|
|
this.checkBoxSanitaryMeasuresApplied.DataContext = _mdh;
|
|
this.checkBoxSanitaryMeasuresApplied.Checked += CheckBoxSanitaryMeasuresApplied_Checked;
|
|
this.checkBoxSanitaryMeasuresApplied.Unchecked += CheckBoxSanitaryMeasuresApplied_Checked;
|
|
this.CheckBoxSanitaryMeasuresApplied_Checked(null, null);
|
|
|
|
this.dataGridSanitaryMeasures.Initialize();
|
|
this.dataGridSanitaryMeasures.IsReadOnly = !(_mdh.SanitaryMeasuresApplied ?? false);
|
|
this.dataGridSanitaryMeasures.ItemsSource = _mdh.SanitaryMeasuresDetails;
|
|
this.dataGridSanitaryMeasures.AddingNewItem += DataGridSanitaryMeasures_AddingNewItem;
|
|
this.dataGridSanitaryMeasures.EditRequested += DataGridSanitaryMeasures_EditRequested;
|
|
this.dataGridSanitaryMeasures.DeleteRequested += DataGridSanitaryMeasures_DeleteRequested;
|
|
this.dataGridSanitaryMeasures.CreateRequested += DataGridSanitaryMeasures_CreateRequested;
|
|
|
|
this.checkBoxStowawaysOnBoard.DataContext = _mdh;
|
|
this.checkBoxStowawaysOnBoard.Checked += CheckBoxStowawaysOnBoard_Checked;
|
|
this.checkBoxStowawaysOnBoard.Unchecked += CheckBoxStowawaysOnBoard_Checked;
|
|
this.CheckBoxStowawaysOnBoard_Checked(null, null);
|
|
this.textBoxStowawaysJoiningLocation.DataContext = _mdh;
|
|
this.checkBoxSickAnimalsOrPets.DataContext = _mdh;
|
|
|
|
this.checkBoxHasShipVisited.DataContext = _mdh;
|
|
this.dataGridInfectedAreas.Initialize();
|
|
this.dataGridInfectedAreas.IsReadOnly = !(_mdh.InfectedAreaVisited ?? false);
|
|
this.dataGridInfectedAreas.ItemsSource = _mdh.InfectedAreas;
|
|
this.dataGridInfectedAreas.AddingNewItem += DataGridInfectedAreas_AddingNewItem;
|
|
this.dataGridInfectedAreas.EditRequested += DataGridInfectedAreas_EditRequested;
|
|
this.dataGridInfectedAreas.DeleteRequested += DataGridInfectedAreas_DeleteRequested;
|
|
this.dataGridInfectedAreas.CreateRequested += DataGridInfectedAreas_CreateRequested;
|
|
|
|
this.checkBoxStowaways.DataContext = _bpol;
|
|
this.checkBoxCruiseShip.DataContext = _bpol;
|
|
this.dataGridPortOfItinerary.Initialize();
|
|
this.dataGridPortOfItinerary.ItemsSource = _bpol.PortOfItineraries;
|
|
this.dataGridPortOfItinerary.AddingNewItem += DataGridPortOfItinerary_AddingNewItem;
|
|
this.dataGridPortOfItinerary.EditRequested += DataGridPortOfItinerary_EditRequested;
|
|
this.dataGridPortOfItinerary.DeleteRequested += DataGridPortOfItinerary_DeleteRequested;
|
|
this.dataGridPortOfItinerary.CreateRequested += DataGridPortOfItinerary_CreateRequested;
|
|
}
|
|
|
|
public override void SetEnabled(bool enabled)
|
|
{
|
|
base.SetEnabled(enabled);
|
|
this.voyageGroupBox.IsEnabled = enabled;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region event handler
|
|
|
|
private void VoyageControl_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
// 1.1
|
|
this.RegisterLocodeChange(this.locodeControl_LastPort, Message.NotificationClass.NOA_NOD);
|
|
this.RegisterDateTimePickerChange(this.dateTimePicker_ETDFromLastPort, Message.NotificationClass.NOA_NOD);
|
|
|
|
// 1.2
|
|
this.RegisterCheckboxChange(this.checkBoxKielCanalPassagePlanned, Message.NotificationClass.SEC);
|
|
this.RegisterDateTimePickerChange(this.dateTimePickerKielCanalPassagePlannedIncomming, Message.NotificationClass.SEC);
|
|
|
|
// 1.3
|
|
this.locodePoC.PropertyChanged += (o, a) => this.OnNotificationClassChanged(null);
|
|
this.RegisterDateTimePickerChange(this.dateTimePickerETA, Message.NotificationClass.NOA_NOD);
|
|
this.RegisterDateTimePickerChange(this.dateTimePickerETD, Message.NotificationClass.NOA_NOD);
|
|
this.RegisterDoubleUpDownChange(this.doubleUpDownPlannedPeriodOfStay, Message.NotificationClass.PRE72H);
|
|
|
|
// 1.4
|
|
this.RegisterCheckboxChange(this.checkBoxKielCanalPassagePlannedOutgoing, Message.NotificationClass.SEC);
|
|
this.RegisterDateTimePickerChange(this.dateTimePickerKielCanalPassagePlannedOutgoing, Message.NotificationClass.SEC);
|
|
|
|
// 1.5
|
|
this.RegisterLocodeChange(this.locodeControl_NextPort, Message.NotificationClass.NOA_NOD);
|
|
this.RegisterDateTimePickerChange(this.dateTimePicker_ETAToNextPort, Message.NotificationClass.NOA_NOD);
|
|
|
|
// 1.6
|
|
this.RegisterComboboxIndexChange(this.comboBoxShippingArea, Message.NotificationClass.INFO);
|
|
this.RegisterComboboxValueChange(this.comboBoxTransportMode, Message.NotificationClass.STAT);
|
|
|
|
// 1.10
|
|
this.RegisterCheckboxChange(this.checkBoxAwareOfConditions, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxHasShipVisited, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxHavePersonsDied, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxIsSuspectedInfectious, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxSanitaryMeasuresApplied, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxSickAnimalsOrPets, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxSickPersonsOnBoard, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxStowawaysOnBoard, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxTotalNumberSickHigherThan, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxWasMedicalConsulted, Message.NotificationClass.MDH);
|
|
this.RegisterIntegerUpDownChange(this.integerUpDownNumberOfDeaths, Message.NotificationClass.MDH);
|
|
this.RegisterIntegerUpDownChange(this.integerUpDownNumberOfIllPersons, Message.NotificationClass.MDH);
|
|
this.RegisterTextboxChange(this.textBoxStowawaysJoiningLocation, Message.NotificationClass.MDH);
|
|
|
|
// 1.11
|
|
|
|
this.RegisterCheckboxChange(this.checkBoxStowaways, Message.NotificationClass.BPOL);
|
|
this.RegisterCheckboxChange(this.checkBoxCruiseShip, Message.NotificationClass.BPOL);
|
|
|
|
}
|
|
|
|
private void checkBoxKielCanalPassagePlanned_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
this.dateTimePickerKielCanalPassagePlannedIncomming.IsEnabled = this.checkBoxKielCanalPassagePlanned.IsChecked ?? false;
|
|
this.dateTimePickerKielCanalPassagePlannedOutgoing.IsEnabled = this.checkBoxKielCanalPassagePlanned.IsChecked ?? false;
|
|
}
|
|
|
|
private void CheckBoxStowawaysOnBoard_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
this.textBoxStowawaysJoiningLocation.IsEnabled = this.checkBoxStowawaysOnBoard.IsChecked ?? false;
|
|
this.textBoxStowawaysJoiningLocation.IsReadOnly = !(this.checkBoxStowawaysOnBoard.IsChecked ?? false);
|
|
}
|
|
|
|
private void CheckBoxTotalNumberSickHigherThan_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
this.integerUpDownNumberOfIllPersons.IsEnabled = this.checkBoxTotalNumberSickHigherThan.IsChecked ?? false;
|
|
this.integerUpDownNumberOfDeaths.IsReadOnly = !(this.checkBoxTotalNumberSickHigherThan.IsChecked ?? false);
|
|
}
|
|
|
|
private void CheckBoxHavePersonsDied_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
this.integerUpDownNumberOfDeaths.IsEnabled = this.checkBoxHavePersonsDied.IsChecked ?? false;
|
|
this.integerUpDownNumberOfDeaths.IsReadOnly = !(this.checkBoxHavePersonsDied.IsChecked ?? false);
|
|
}
|
|
|
|
private void CheckBoxHasShipVisited_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
this.dataGridInfectedAreas.IsReadOnly = !(this.checkBoxHasShipVisited.IsChecked ?? false);
|
|
}
|
|
|
|
private void CheckBoxSanitaryMeasuresApplied_Checked(object sender, RoutedEventArgs e)
|
|
{
|
|
this.dataGridSanitaryMeasures.IsReadOnly = !(this.checkBoxSanitaryMeasuresApplied.IsChecked ?? false);
|
|
}
|
|
|
|
private void buttonImportExcelLast10PortFacilities_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
OpenFileDialog ofd = new OpenFileDialog
|
|
{
|
|
Filter = "Excel Files|*.xls;*.xlsx"
|
|
};
|
|
|
|
if (ofd.ShowDialog() ?? false)
|
|
{
|
|
FileStream stream;
|
|
try
|
|
{
|
|
stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
return;
|
|
}
|
|
|
|
using (var reader = ExcelReaderFactory.CreateReader(stream))
|
|
{
|
|
List<LastTenPortFacilitiesCalled> importL10C = new List<LastTenPortFacilitiesCalled>();
|
|
|
|
try
|
|
{
|
|
do
|
|
{
|
|
int cnt = 0;
|
|
while (reader.Read() && (cnt < 10))
|
|
{
|
|
if (((IExcelDataReader)reader).FieldCount < 8)
|
|
{
|
|
throw new InvalidDataException("Sheet must have 8 Columns of data");
|
|
}
|
|
LastTenPortFacilitiesCalled l10c = new LastTenPortFacilitiesCalled();
|
|
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
|
|
if (!reader.IsDBNull(0)) l10c.PortFacilityPortName = reader.GetString(0);
|
|
if (!reader.IsDBNull(2)) l10c.PortFacilityPortCountry = reader.GetString(2);
|
|
if (!reader.IsDBNull(3)) l10c.PortFacilityPortLoCode = reader.GetString(3);
|
|
object o = null;
|
|
if (!reader.IsDBNull(4)) o = reader.GetValue(4);
|
|
if (o != null) l10c.PortFacilityDateOfArrival = Convert.ToDateTime(o);
|
|
if (!reader.IsDBNull(5)) o = reader.GetValue(5);
|
|
if (o != null) l10c.PortFacilityDateOfDeparture = Convert.ToDateTime(o);
|
|
// if (!reader.IsDBNull(4)) l10c.PortFacilityDateOfArrival = reader.GetDateTime(4);
|
|
// if (!reader.IsDBNull(5)) l10c.PortFacilityDateOfDeparture = reader.GetDateTime(5);
|
|
if (!reader.IsDBNull(6)) o = reader.GetValue(6);
|
|
if (o != null) l10c.PortFacilityShipSecurityLevel = Convert.ToByte(o);
|
|
if (!reader.IsDBNull(7)) o = reader.GetValue(7);
|
|
int gisis = Convert.ToInt32(o);
|
|
if (!reader.IsDBNull(7)) l10c.PortFacilityGISISCode = gisis.ToString().PadLeft(4, '0');
|
|
if (!reader.IsDBNull(8)) l10c.PortFacilitySecurityMattersToReport = reader.GetString(8);
|
|
if (l10c.PortFacilitySecurityMattersToReport.Equals("nil", StringComparison.CurrentCultureIgnoreCase))
|
|
l10c.PortFacilitySecurityMattersToReport = null;
|
|
if (!reader.IsDBNull(9)) l10c.PortFacilityGISISCodeLocode = reader.GetString(9);
|
|
l10c.SEC = this._sec;
|
|
l10c.IsDirty = true;
|
|
l10c.Identifier = LastTenPortFacilitiesCalled.GetNewIdentifier(this._sec.LastTenPortFacilitesCalled);
|
|
this._sec.LastTenPortFacilitesCalled.Add(l10c);
|
|
importL10C.Add(l10c);
|
|
cnt++;
|
|
}
|
|
} while (reader.NextResult());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("Error reading Excel: " + ex.Message, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
|
|
if (importL10C.Count > 0)
|
|
{
|
|
this.dataGridLast10PortFacilities.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
MessageBox.Show(String.Format(Properties.Resources.textL10PImported, importL10C.Count), Properties.Resources.textCaptionInformation, MessageBoxButton.OK, MessageBoxImage.Information);
|
|
}
|
|
}
|
|
|
|
stream.Close();
|
|
}
|
|
}
|
|
|
|
private void buttonImportFromL10P_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (this._sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Count > 0)
|
|
{
|
|
MessageBox.Show(Properties.Resources.textOnlyIfGridIsEmpty, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
}
|
|
else
|
|
{
|
|
foreach (LastTenPortFacilitiesCalled l10c in this._sec.LastTenPortFacilitesCalled)
|
|
{
|
|
ShipToShipActivitiesDuringLastTenPortFacilitiesCalled s2s = new ShipToShipActivitiesDuringLastTenPortFacilitiesCalled
|
|
{
|
|
SEC = this._sec,
|
|
Identifier = ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.GetNewIdentifier(this._sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled),
|
|
ShipToShipActivityLocationName = l10c.PortFacilityPortName,
|
|
ShipToShipActivityLocationLoCode = l10c.PortFacilityPortLoCode,
|
|
ShipToShipActivityDateFrom = l10c.PortFacilityDateOfArrival,
|
|
ShipToShipActivityDateTo = l10c.PortFacilityDateOfDeparture,
|
|
ShipToShipActivitySecurityMattersToReport = l10c.PortFacilitySecurityMattersToReport
|
|
};
|
|
|
|
this._sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Add(s2s);
|
|
}
|
|
if (this._sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Count > 0)
|
|
{
|
|
this.dataGridShip2ShipActivities.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void buttonImportFromSEC_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (this._mdh.PortOfCallLast30Days.Count > 0)
|
|
{
|
|
MessageBox.Show(Properties.Resources.textOnlyIfGridIsEmpty, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
}
|
|
else
|
|
{
|
|
if (this._sec != null)
|
|
{
|
|
foreach (LastTenPortFacilitiesCalled l10fc in _sec.LastTenPortFacilitesCalled)
|
|
{
|
|
if (l10fc.PortFacilityDateOfDeparture.HasValue &&
|
|
((DateTime.Now - l10fc.PortFacilityDateOfDeparture.Value).TotalDays < 31))
|
|
{
|
|
PortOfCallLast30Days poc30 = new PortOfCallLast30Days();
|
|
poc30.Identifier = PortOfCallLast30Days.GetNewIdentifier(this._mdh.PortOfCallLast30Days);
|
|
poc30.PortOfCallLast30DaysCrewMembersJoined = false;
|
|
poc30.PortOfCallLast30DaysDateOfDeparture = l10fc.PortFacilityDateOfDeparture;
|
|
poc30.PortOfCallLast30DaysLocode = l10fc.PortFacilityPortLoCode;
|
|
poc30.MDH = this._mdh;
|
|
this._mdh.PortOfCallLast30Days.Add(poc30);
|
|
}
|
|
}
|
|
if (this._mdh.PortOfCallLast30Days.Count > 0)
|
|
{
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void buttonImportLast30DaysFromExcel_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
OpenFileDialog ofd = new OpenFileDialog
|
|
{
|
|
Filter = "Excel Files|*.xls;*.xlsx"
|
|
};
|
|
if (ofd.ShowDialog() ?? false)
|
|
{
|
|
FileStream stream;
|
|
try
|
|
{
|
|
stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
return;
|
|
}
|
|
|
|
using (var reader = ExcelReaderFactory.CreateReader(stream))
|
|
{
|
|
List<PortOfCallLast30Days> importPoC30 = new List<PortOfCallLast30Days>();
|
|
|
|
try
|
|
{
|
|
do
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
if (reader.FieldCount < 3)
|
|
{
|
|
throw new InvalidDataException("Sheet must have at least 3 Columns of data");
|
|
}
|
|
PortOfCallLast30Days poc30 = new PortOfCallLast30Days();
|
|
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
|
|
if (!reader.IsDBNull(0)) poc30.PortOfCallLast30DaysLocode = reader.GetString(0);
|
|
if (!reader.IsDBNull(1)) poc30.PortOfCallLast30DaysDateOfDeparture = reader.GetDateTime(1);
|
|
string boolString = "";
|
|
if (!reader.IsDBNull(2)) boolString = reader.GetString(2);
|
|
poc30.PortOfCallLast30DaysCrewMembersJoined = (boolString.Equals("y", StringComparison.OrdinalIgnoreCase) || (boolString.Equals("yes", StringComparison.OrdinalIgnoreCase)) ||
|
|
(boolString.Equals("j", StringComparison.OrdinalIgnoreCase)));
|
|
|
|
if (reader.FieldCount > 3)
|
|
{
|
|
string allNewCrew = reader.GetString(3)?.Trim();
|
|
if (!allNewCrew.IsNullOrEmpty())
|
|
{
|
|
string[] crewNames = allNewCrew.Split(',', ';');
|
|
for (int i = 0; i < crewNames.Length; i++)
|
|
{
|
|
string crewName = crewNames[i].Trim();
|
|
if (crewName.IsNullOrEmpty()) continue;
|
|
PortOfCallLast30DaysCrewJoinedShip poc30Crew = new PortOfCallLast30DaysCrewJoinedShip();
|
|
poc30Crew.PortOfCallLast30DaysCrewJoinedShipName = crewName;
|
|
poc30Crew.PortOfCallLast30Days = poc30;
|
|
poc30.CrewJoinedShip.Add(poc30Crew);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
poc30.MDH = this._mdh;
|
|
this._mdh.PortOfCallLast30Days.Add(poc30);
|
|
importPoC30.Add(poc30);
|
|
}
|
|
} while (reader.NextResult());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show("Error reading Excel: " + ex.Message, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Error);
|
|
}
|
|
|
|
if (importPoC30.Count > 0)
|
|
{
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
MessageBox.Show(String.Format(Properties.Resources.textPoC30Imported, importPoC30.Count), Properties.Resources.textCaptionInformation,
|
|
MessageBoxButton.OK, MessageBoxImage.Information);
|
|
}
|
|
}
|
|
|
|
stream.Close();
|
|
}
|
|
}
|
|
|
|
private void buttonImportPortOfItineraryFromSEC_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
if (this._bpol.PortOfItineraries.Count > 0)
|
|
{
|
|
MessageBox.Show(Properties.Resources.textOnlyIfGridIsEmpty, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
}
|
|
else
|
|
{
|
|
if (this._sec != null)
|
|
{
|
|
foreach (LastTenPortFacilitiesCalled l10fc in _sec.LastTenPortFacilitesCalled)
|
|
{
|
|
//if (l10fc.PortFacilityDateOfDeparture.HasValue &&
|
|
//((DateTime.Now - l10fc.PortFacilityDateOfDeparture.Value).TotalDays < 31))
|
|
//{
|
|
DateTime? eta = null;
|
|
if (l10fc.PortFacilityDateOfArrival.HasValue)
|
|
{
|
|
eta = new DateTime(l10fc.PortFacilityDateOfArrival.Value.Year, l10fc.PortFacilityDateOfArrival.Value.Month,
|
|
l10fc.PortFacilityDateOfArrival.Value.Day, 11, 11, 11).ToUniversalTime();
|
|
}
|
|
|
|
PortOfItinerary poi = new PortOfItinerary
|
|
{
|
|
Identifier = PortOfItinerary.GetNewIdentifier(this._bpol.PortOfItineraries),
|
|
BPOL = this._bpol,
|
|
PortOfItineraryETA = eta,
|
|
PortOfItineraryLocode = l10fc.PortFacilityPortLoCode,
|
|
PortOfItineraryName = l10fc.PortFacilityPortName
|
|
};
|
|
this._bpol.PortOfItineraries.Add(poi);
|
|
//}
|
|
}
|
|
if (this._bpol.PortOfItineraries.Count > 0)
|
|
{
|
|
this.dataGridPortOfItinerary.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.BPOL);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region datagrid ship 2 ship activities
|
|
|
|
private void DataGridShip2ShipActivities_CreateRequested()
|
|
{
|
|
EditShip2ShipActivitiesDialog epd = new EditShip2ShipActivitiesDialog
|
|
{
|
|
ShipToShipActivity = new ShipToShipActivitiesDuringLastTenPortFacilitiesCalled()
|
|
};
|
|
epd.ShipToShipActivity.Identifier = ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.GetNewIdentifier(_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled);
|
|
epd.ShipToShipActivity.SEC = this._sec;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
if (!this._sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Contains(epd.ShipToShipActivity))
|
|
this._sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Add(epd.ShipToShipActivity);
|
|
this.dataGridShip2ShipActivities.Items.Refresh();
|
|
epd.ShipToShipActivity = new ShipToShipActivitiesDuringLastTenPortFacilitiesCalled
|
|
{
|
|
SEC = this._sec,
|
|
Identifier = ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.GetNewIdentifier(_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled)
|
|
};
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
if (!_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Contains(epd.ShipToShipActivity))
|
|
_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Add(epd.ShipToShipActivity);
|
|
this.dataGridShip2ShipActivities.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
}
|
|
}
|
|
|
|
private void DataGridShip2ShipActivities_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is ShipToShipActivitiesDuringLastTenPortFacilitiesCalled s2s)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Remove(s2s);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(s2s);
|
|
List<DatabaseEntity> tmpList = new List<DatabaseEntity>(_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled);
|
|
DatabaseEntity.ResetIdentifiers(tmpList);
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
this.dataGridShip2ShipActivities.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridShip2ShipActivities_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditShip2ShipActivitiesDialog ecpd = new EditShip2ShipActivitiesDialog
|
|
{
|
|
ShipToShipActivity = obj as ShipToShipActivitiesDuringLastTenPortFacilitiesCalled
|
|
};
|
|
ecpd.AddClicked += () =>
|
|
{
|
|
ecpd.CopyValuesToEntity();
|
|
if (!_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Contains(ecpd.ShipToShipActivity))
|
|
_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Add(ecpd.ShipToShipActivity);
|
|
this.dataGridShip2ShipActivities.Items.Refresh();
|
|
ecpd.ShipToShipActivity = new ShipToShipActivitiesDuringLastTenPortFacilitiesCalled
|
|
{
|
|
SEC = this._sec,
|
|
Identifier = ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.GetNewIdentifier(_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled)
|
|
};
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Contains(ecpd.ShipToShipActivity))
|
|
_sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Add(ecpd.ShipToShipActivity);
|
|
this.dataGridShip2ShipActivities.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
}
|
|
}
|
|
|
|
private void DataGridShip2ShipActivities_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridShip2ShipActivities_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region data grid last 10 port facilities
|
|
|
|
private void DataGridLast10PortFacilities_CreateRequested()
|
|
{
|
|
EditLast10PortFacilitiesDialog epd = new EditLast10PortFacilitiesDialog
|
|
{
|
|
LastTenPortFacilitiesCalled = new LastTenPortFacilitiesCalled()
|
|
};
|
|
epd.LastTenPortFacilitiesCalled.Identifier = LastTenPortFacilitiesCalled.GetNewIdentifier(_sec.LastTenPortFacilitesCalled);
|
|
epd.LastTenPortFacilitiesCalled.SEC = this._sec;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
if (!this._sec.LastTenPortFacilitesCalled.Contains(epd.LastTenPortFacilitiesCalled))
|
|
this._sec.LastTenPortFacilitesCalled.Add(epd.LastTenPortFacilitiesCalled);
|
|
this.dataGridLast10PortFacilities.Items.Refresh();
|
|
|
|
epd.LastTenPortFacilitiesCalled = new LastTenPortFacilitiesCalled
|
|
{
|
|
SEC = this._sec,
|
|
Identifier = LastTenPortFacilitiesCalled.GetNewIdentifier(_sec.LastTenPortFacilitesCalled)
|
|
};
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
if (!_sec.LastTenPortFacilitesCalled.Contains(epd.LastTenPortFacilitiesCalled))
|
|
_sec.LastTenPortFacilitesCalled.Add(epd.LastTenPortFacilitiesCalled);
|
|
this.dataGridLast10PortFacilities.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
}
|
|
}
|
|
|
|
private void DataGridLast10PortFacilities_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is LastTenPortFacilitiesCalled l10c)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_sec.LastTenPortFacilitesCalled.Remove(l10c);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(l10c);
|
|
List<DatabaseEntity> tmpList = new List<DatabaseEntity>(_sec.LastTenPortFacilitesCalled);
|
|
DatabaseEntity.ResetIdentifiers(tmpList);// );
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
this.dataGridLast10PortFacilities.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridLast10PortFacilities_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditLast10PortFacilitiesDialog ecpd = new EditLast10PortFacilitiesDialog
|
|
{
|
|
LastTenPortFacilitiesCalled = obj as LastTenPortFacilitiesCalled
|
|
};
|
|
ecpd.AddClicked += () =>
|
|
{
|
|
ecpd.CopyValuesToEntity();
|
|
if (!_sec.LastTenPortFacilitesCalled.Contains(ecpd.LastTenPortFacilitiesCalled))
|
|
_sec.LastTenPortFacilitesCalled.Add(ecpd.LastTenPortFacilitiesCalled);
|
|
this.dataGridLast10PortFacilities.Items.Refresh();
|
|
ecpd.LastTenPortFacilitiesCalled = new LastTenPortFacilitiesCalled
|
|
{
|
|
SEC = this._sec,
|
|
Identifier = LastTenPortFacilitiesCalled.GetNewIdentifier(_sec.LastTenPortFacilitesCalled)
|
|
};
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_sec.LastTenPortFacilitesCalled.Contains(ecpd.LastTenPortFacilitiesCalled))
|
|
_sec.LastTenPortFacilitesCalled.Add(ecpd.LastTenPortFacilitiesCalled);
|
|
this.dataGridLast10PortFacilities.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.SEC);
|
|
}
|
|
}
|
|
|
|
private void DataGridLast10PortFacilities_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridLast10PortFacilities_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region data grid pot called during last 30 days
|
|
|
|
private void DataGridPortOfCallLast30Days_CreateRequested()
|
|
{
|
|
EditPortOfCallLast30DaysDialog epd = new EditPortOfCallLast30DaysDialog();
|
|
epd.PocLast30Days = new PortOfCallLast30Days();
|
|
epd.PocLast30Days.Identifier = PortOfCallLast30Days.GetNewIdentifier(_mdh.PortOfCallLast30Days);
|
|
epd.PocLast30Days.MDH = this._mdh;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
if (!this._mdh.PortOfCallLast30Days.Contains(epd.PocLast30Days))
|
|
this._mdh.PortOfCallLast30Days.Add(epd.PocLast30Days);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
epd.PocLast30Days = new PortOfCallLast30Days();
|
|
epd.PocLast30Days.MDH = this._mdh;
|
|
epd.PocLast30Days.Identifier = PortOfCallLast30Days.GetNewIdentifier(_mdh.PortOfCallLast30Days);
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.PortOfCallLast30Days.Contains(epd.PocLast30Days))
|
|
_mdh.PortOfCallLast30Days.Add(epd.PocLast30Days);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfCallLast30Days_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is PortOfCallLast30Days poc30d)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_mdh.PortOfCallLast30Days.Remove(poc30d);
|
|
poc30d.DeleteElements();
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(poc30d);
|
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_mdh.PortOfCallLast30Days));
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfCallLast30Days_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditPortOfCallLast30DaysDialog ecpd = new EditPortOfCallLast30DaysDialog();
|
|
ecpd.PocLast30Days = obj as PortOfCallLast30Days;
|
|
ecpd.AddClicked += () =>
|
|
{
|
|
ecpd.CopyValuesToEntity();
|
|
if (!_mdh.PortOfCallLast30Days.Contains(ecpd.PocLast30Days))
|
|
_mdh.PortOfCallLast30Days.Add(ecpd.PocLast30Days);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
ecpd.PocLast30Days = new PortOfCallLast30Days();
|
|
ecpd.PocLast30Days.MDH = this._mdh;
|
|
ecpd.PocLast30Days.Identifier = PortOfCallLast30Days.GetNewIdentifier(_mdh.PortOfCallLast30Days);
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.PortOfCallLast30Days.Contains(ecpd.PocLast30Days))
|
|
_mdh.PortOfCallLast30Days.Add(ecpd.PocLast30Days);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfCallLast30Days_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridPortOfCallLast30Days_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region data grid sanitary measures
|
|
|
|
private void DataGridSanitaryMeasures_CreateRequested()
|
|
{
|
|
EditSanitaryMeasureDialog epd = new EditSanitaryMeasureDialog();
|
|
epd.SanitaryMeasureDetail = new SanitaryMeasuresDetail();
|
|
epd.SanitaryMeasureDetail.Identifier = SanitaryMeasuresDetail.GetNewIdentifier(_mdh.SanitaryMeasuresDetails);
|
|
epd.SanitaryMeasureDetail.MDH = this._mdh;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
if (!this._mdh.SanitaryMeasuresDetails.Contains(epd.SanitaryMeasureDetail))
|
|
this._mdh.SanitaryMeasuresDetails.Add(epd.SanitaryMeasureDetail);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
epd.SanitaryMeasureDetail = new SanitaryMeasuresDetail();
|
|
epd.SanitaryMeasureDetail.Identifier = SanitaryMeasuresDetail.GetNewIdentifier(_mdh.SanitaryMeasuresDetails);
|
|
epd.SanitaryMeasureDetail.MDH = this._mdh;
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.SanitaryMeasuresDetails.Contains(epd.SanitaryMeasureDetail))
|
|
_mdh.SanitaryMeasuresDetails.Add(epd.SanitaryMeasureDetail);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridSanitaryMeasures_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is SanitaryMeasuresDetail smd)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_mdh.SanitaryMeasuresDetails.Remove(smd);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(smd);
|
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_mdh.SanitaryMeasuresDetails));
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridSanitaryMeasures_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditSanitaryMeasureDialog ecpd = new EditSanitaryMeasureDialog();
|
|
ecpd.SanitaryMeasureDetail = obj as SanitaryMeasuresDetail;
|
|
ecpd.AddClicked += () =>
|
|
{
|
|
ecpd.CopyValuesToEntity();
|
|
if (!_mdh.SanitaryMeasuresDetails.Contains(ecpd.SanitaryMeasureDetail))
|
|
_mdh.SanitaryMeasuresDetails.Add(ecpd.SanitaryMeasureDetail);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
ecpd.SanitaryMeasureDetail = new SanitaryMeasuresDetail();
|
|
ecpd.SanitaryMeasureDetail.Identifier = SanitaryMeasuresDetail.GetNewIdentifier(_mdh.SanitaryMeasuresDetails);
|
|
ecpd.SanitaryMeasureDetail.MDH = this._mdh;
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.SanitaryMeasuresDetails.Contains(ecpd.SanitaryMeasureDetail))
|
|
_mdh.SanitaryMeasuresDetails.Add(ecpd.SanitaryMeasureDetail);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridSanitaryMeasures_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridSanitaryMeasures_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region data grid infected areas
|
|
|
|
private void DataGridInfectedAreas_CreateRequested()
|
|
{
|
|
EditInfectedAreaDialog epd = new EditInfectedAreaDialog();
|
|
epd.InfectedArea = new InfectedArea();
|
|
epd.InfectedArea.Identifier = InfectedArea.GetNewIdentifier(_mdh.InfectedAreas);
|
|
epd.InfectedArea.MDH = this._mdh;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
if (!this._mdh.InfectedAreas.Contains(epd.InfectedArea))
|
|
this._mdh.InfectedAreas.Add(epd.InfectedArea);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
epd.InfectedArea = new InfectedArea();
|
|
epd.InfectedArea.MDH = this._mdh;
|
|
epd.InfectedArea.Identifier = InfectedArea.GetNewIdentifier(_mdh.InfectedAreas);
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
if (!this._mdh.InfectedAreas.Contains(epd.InfectedArea))
|
|
_mdh.InfectedAreas.Add(epd.InfectedArea);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridInfectedAreas_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is InfectedArea ia)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_mdh.InfectedAreas.Remove(ia);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ia);
|
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_mdh.InfectedAreas));
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridInfectedAreas_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditInfectedAreaDialog ecpd = new EditInfectedAreaDialog();
|
|
ecpd.InfectedArea = obj as InfectedArea;
|
|
ecpd.AddClicked += () =>
|
|
{
|
|
ecpd.CopyValuesToEntity();
|
|
if (!_mdh.InfectedAreas.Contains(ecpd.InfectedArea))
|
|
_mdh.InfectedAreas.Add(ecpd.InfectedArea);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
ecpd.InfectedArea = new InfectedArea();
|
|
ecpd.InfectedArea.MDH = this._mdh;
|
|
ecpd.InfectedArea.Identifier = InfectedArea.GetNewIdentifier(_mdh.InfectedAreas);
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.InfectedAreas.Contains(ecpd.InfectedArea))
|
|
_mdh.InfectedAreas.Add(ecpd.InfectedArea);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridInfectedAreas_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridInfectedAreas_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region data grid port of itinerary
|
|
|
|
private void DataGridPortOfItinerary_CreateRequested()
|
|
{
|
|
EditPortOfItineraryDialog epid = new EditPortOfItineraryDialog
|
|
{
|
|
PortOfItinerary = new PortOfItinerary()
|
|
};
|
|
epid.PortOfItinerary.Identifier = PortOfItinerary.GetNewIdentifier(this._bpol.PortOfItineraries);
|
|
epid.PortOfItinerary.BPOL = this._bpol;
|
|
|
|
epid.AddClicked += () =>
|
|
{
|
|
epid.CopyValuesToEntity();
|
|
if (!this._bpol.PortOfItineraries.Contains(epid.PortOfItinerary))
|
|
this._bpol.PortOfItineraries.Add(epid.PortOfItinerary);
|
|
this.dataGridPortOfItinerary.Items.Refresh();
|
|
epid.PortOfItinerary = new PortOfItinerary
|
|
{
|
|
BPOL = _bpol,
|
|
Identifier = PortOfItinerary.GetNewIdentifier(this._bpol.PortOfItineraries)
|
|
};
|
|
this.SublistElementChanged(Message.NotificationClass.BPOL);
|
|
};
|
|
|
|
if (epid.ShowDialog() ?? false)
|
|
{
|
|
if (!_bpol.PortOfItineraries.Contains(epid.PortOfItinerary))
|
|
_bpol.PortOfItineraries.Add(epid.PortOfItinerary);
|
|
this.dataGridPortOfItinerary.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.BPOL);
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfItinerary_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is PortOfItinerary poi)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_bpol.PortOfItineraries.Remove(poi);
|
|
DBManager.Instance.Delete(poi);
|
|
DatabaseEntity.ResetIdentifiers(new List<DatabaseEntity>(_bpol.PortOfItineraries));
|
|
this.SublistElementChanged(Message.NotificationClass.BPOL);
|
|
this.dataGridPortOfItinerary.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfItinerary_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditPortOfItineraryDialog epid = new EditPortOfItineraryDialog
|
|
{
|
|
PortOfItinerary = obj as PortOfItinerary
|
|
};
|
|
|
|
epid.AddClicked += () =>
|
|
{
|
|
epid.CopyValuesToEntity();
|
|
if (!_bpol.PortOfItineraries.Contains(epid.PortOfItinerary))
|
|
_bpol.PortOfItineraries.Add(epid.PortOfItinerary);
|
|
this.dataGridPortOfItinerary.Items.Refresh();
|
|
epid.PortOfItinerary = new PortOfItinerary
|
|
{
|
|
BPOL = this._bpol,
|
|
Identifier = PortOfItinerary.GetNewIdentifier(this._bpol.PortOfItineraries)
|
|
};
|
|
this.SublistElementChanged(Message.NotificationClass.BPOL);
|
|
};
|
|
|
|
if (epid.ShowDialog() ?? false)
|
|
{
|
|
if (!_bpol.PortOfItineraries.Contains(epid.PortOfItinerary))
|
|
this._bpol.PortOfItineraries.Add(epid.PortOfItinerary);
|
|
this.dataGridPortOfItinerary.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.BPOL);
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfItinerary_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridPortOfItinerary_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|