git_bsmd/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs

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
}
}