330 lines
15 KiB
C#
330 lines
15 KiB
C#
// Copyright (c) 2017 schick Informatik
|
|
// Description: MDH Meldung Bearbeitungsseite
|
|
//
|
|
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using ENI2.EditControls;
|
|
|
|
using bsmd.database;
|
|
|
|
|
|
namespace ENI2.DetailViewControls
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for MaritimeHealthDeclarationDetailControl.xaml
|
|
/// </summary>
|
|
public partial class MaritimeHealthDeclarationDetailControl : DetailBaseControl
|
|
{
|
|
private Message _mdhMessage;
|
|
private MDH _mdh;
|
|
|
|
public MaritimeHealthDeclarationDetailControl()
|
|
{
|
|
InitializeComponent();
|
|
Loaded += MaritimeHealthDeclarationDetailControl_Loaded;
|
|
}
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
foreach (Message aMessage in this.Messages)
|
|
{
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.MDH) { this._mdhMessage = aMessage; this.ControlMessages.Add(aMessage); }
|
|
}
|
|
|
|
#region init MDH
|
|
|
|
if (this._mdhMessage == null)
|
|
{
|
|
this._mdhMessage = this.Core.CreateMessage(Message.NotificationClass.MDH);
|
|
this.Messages.Add(this._mdhMessage);
|
|
}
|
|
|
|
MDH mdh = null;
|
|
if (this._mdhMessage.Elements.Count > 0)
|
|
mdh = this._mdhMessage.Elements[0] as MDH;
|
|
if (mdh == null)
|
|
{
|
|
mdh = new MDH();
|
|
mdh.MessageCore = this.Core;
|
|
mdh.MessageHeader = this._mdhMessage;
|
|
_mdhMessage.Elements.Add(mdh);
|
|
}
|
|
|
|
this.portCallGroupBox.DataContext = mdh;
|
|
this._mdh = 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;
|
|
|
|
this.dataGridInfectedAreas.Initialize();
|
|
this.dataGridInfectedAreas.IsReadOnly = !(mdh.InfectedAreaVisited ?? false);
|
|
this.checkBoxHasShipVisited.Checked += CheckBoxHasShipVisited_Checked;
|
|
this.checkBoxHasShipVisited.Unchecked += CheckBoxHasShipVisited_Checked;
|
|
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.dataGridSanitaryMeasures.Initialize();
|
|
this.dataGridSanitaryMeasures.IsReadOnly = !(mdh.SanitaryMeasuresApplied ?? false);
|
|
this.checkBoxSanitaryMeasuresApplied.Checked += CheckBoxSanitaryMeasuresApplied_Checked;
|
|
this.checkBoxSanitaryMeasuresApplied.Unchecked += CheckBoxSanitaryMeasuresApplied_Checked;
|
|
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;
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
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 MaritimeHealthDeclarationDetailControl_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
|
|
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.checkBoxReinspectionSanitary, Message.NotificationClass.MDH);
|
|
this.RegisterCheckboxChange(this.checkBoxSanitaryControlExemption, 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.RegisterCheckboxChange(this.checkSimplification, Message.NotificationClass.MDH);
|
|
this.RegisterLocodeChange(this.locodePortWhereHealthDeclarationWasGiven, Message.NotificationClass.MDH);
|
|
this.RegisterIntegerUpDownChange(this.integerUpDownNumberOfDeaths, Message.NotificationClass.MDH);
|
|
this.RegisterIntegerUpDownChange(this.integerUpDownNumberOfIllPersons, Message.NotificationClass.MDH);
|
|
this.RegisterTextboxChange(this.textBoxPlaceOfIssue, Message.NotificationClass.MDH);
|
|
this.RegisterTextboxChange(this.textBoxStowawaysJoiningLocation, Message.NotificationClass.MDH);
|
|
|
|
}
|
|
|
|
#region SanitaryMeasures Grid
|
|
|
|
private void DataGridSanitaryMeasures_CreateRequested()
|
|
{
|
|
SanitaryMeasuresDetail smDetail = new SanitaryMeasuresDetail();
|
|
EditSanitaryMeasureDialog epd = new EditSanitaryMeasureDialog();
|
|
epd.SanitaryMeasureDetail = smDetail;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
epd.SanitaryMeasureDetail.MDH = this._mdh;
|
|
this._mdh.SanitaryMeasuresDetails.Add(epd.SanitaryMeasureDetail);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
epd.SanitaryMeasureDetail = new SanitaryMeasuresDetail();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
_mdh.SanitaryMeasuresDetails.Add(epd.SanitaryMeasureDetail);
|
|
epd.SanitaryMeasureDetail.MDH = this._mdh;
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridSanitaryMeasures_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
SanitaryMeasuresDetail smd = obj as SanitaryMeasuresDetail;
|
|
if (smd != null)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_mdh.SanitaryMeasuresDetails.Remove(smd);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(smd);
|
|
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();
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.SanitaryMeasuresDetails.Contains(ecpd.SanitaryMeasureDetail))
|
|
_mdh.SanitaryMeasuresDetails.Add(ecpd.SanitaryMeasureDetail);
|
|
this.dataGridSanitaryMeasures.Items.Refresh();
|
|
// signal up
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridSanitaryMeasures_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridSanitaryMeasures_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region InfectedAreas Grid
|
|
|
|
private void DataGridInfectedAreas_CreateRequested()
|
|
{
|
|
InfectedArea ia = new InfectedArea();
|
|
EditInfectedAreaDialog epd = new EditInfectedAreaDialog();
|
|
epd.InfectedArea = ia;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
epd.InfectedArea.MDH = this._mdh;
|
|
this._mdh.InfectedAreas.Add(epd.InfectedArea);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
epd.InfectedArea = new InfectedArea();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
_mdh.InfectedAreas.Add(epd.InfectedArea);
|
|
epd.InfectedArea.MDH = this._mdh;
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridInfectedAreas_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
InfectedArea ia = obj as InfectedArea;
|
|
if (ia != null)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_mdh.InfectedAreas.Remove(ia);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ia);
|
|
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();
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.InfectedAreas.Contains(ecpd.InfectedArea))
|
|
_mdh.InfectedAreas.Add(ecpd.InfectedArea);
|
|
this.dataGridInfectedAreas.Items.Refresh();
|
|
// signal up
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridInfectedAreas_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridInfectedAreas_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region PortOfCallLast30Days grid
|
|
|
|
private void DataGridPortOfCallLast30Days_CreateRequested()
|
|
{
|
|
PortOfCallLast30Days poc30 = new PortOfCallLast30Days();
|
|
EditPortOfCallLast30DaysDialog epd = new EditPortOfCallLast30DaysDialog();
|
|
epd.PocLast30Days = poc30;
|
|
|
|
epd.AddClicked += () =>
|
|
{
|
|
epd.CopyValuesToEntity();
|
|
epd.PocLast30Days.MDH = this._mdh;
|
|
this._mdh.PortOfCallLast30Days.Add(epd.PocLast30Days);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
epd.PocLast30Days = new PortOfCallLast30Days();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
};
|
|
|
|
if (epd.ShowDialog() ?? false)
|
|
{
|
|
_mdh.PortOfCallLast30Days.Add(epd.PocLast30Days);
|
|
epd.PocLast30Days.MDH = this._mdh;
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfCallLast30Days_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
PortOfCallLast30Days poc30d = obj as PortOfCallLast30Days;
|
|
if (poc30d != null)
|
|
{
|
|
// are you sure dialog is in base class
|
|
_mdh.PortOfCallLast30Days.Remove(poc30d);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(poc30d);
|
|
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();
|
|
};
|
|
if (ecpd.ShowDialog() ?? false)
|
|
{
|
|
if (!_mdh.PortOfCallLast30Days.Contains(ecpd.PocLast30Days))
|
|
_mdh.PortOfCallLast30Days.Add(ecpd.PocLast30Days);
|
|
this.dataGridPortOfCallLast30Days.Items.Refresh();
|
|
// signal up
|
|
this.SublistElementChanged(Message.NotificationClass.MDH);
|
|
}
|
|
}
|
|
|
|
private void DataGridPortOfCallLast30Days_AddingNewItem(object sender, AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridPortOfCallLast30Days_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|