git_bsmd/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs

608 lines
30 KiB
C#

// Copyright (c) 2017 schick Informatik
// Description: MDH Meldung Bearbeitungsseite
//
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Win32;
using System.IO;
using ENI2.EditControls;
using ENI2.Util;
using bsmd.database;
using ExcelDataReader;
namespace ENI2.DetailViewControls
{
/// <summary>
/// Interaction logic for MaritimeHealthDeclarationDetailControl.xaml
/// </summary>
public partial class MaritimeHealthDeclarationDetailControl : DetailBaseControl
{
private Message _mdhMessage;
private Message _secMessage;
private MDH _mdh;
private SEC _sec;
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); }
if (aMessage.MessageNotificationClass == Message.NotificationClass.SEC)
{
this._secMessage = aMessage;
if (this._secMessage.Elements.Count > 0) this._sec = this._secMessage.Elements[0] as SEC;
}
}
#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);
}
#region Checkbox enable / disable controls
this.checkBoxHasShipVisited.Checked += CheckBoxHasShipVisited_Checked;
this.checkBoxHasShipVisited.Unchecked += CheckBoxHasShipVisited_Checked;
this.CheckBoxHasShipVisited_Checked(null, null);
this.checkBoxHavePersonsDied.Checked += CheckBoxHavePersonsDied_Checked;
this.checkBoxHavePersonsDied.Unchecked += CheckBoxHavePersonsDied_Checked;
this.CheckBoxHavePersonsDied_Checked(null, null);
this.checkBoxTotalNumberSickHigherThan.Checked += CheckBoxTotalNumberSickHigherThan_Checked;
this.checkBoxTotalNumberSickHigherThan.Unchecked += CheckBoxTotalNumberSickHigherThan_Checked;
this.CheckBoxTotalNumberSickHigherThan_Checked(null, null);
this.checkBoxStowawaysOnBoard.Checked += CheckBoxStowawaysOnBoard_Checked;
this.checkBoxStowawaysOnBoard.Unchecked += CheckBoxStowawaysOnBoard_Checked;
this.CheckBoxStowawaysOnBoard_Checked(null, null);
this.checkBoxSanitaryControlExemption.Checked += CheckBoxSanitaryControlExemption_Checked;
this.checkBoxSanitaryControlExemption.Unchecked += CheckBoxSanitaryControlExemption_Checked;
this.CheckBoxSanitaryControlExemption_Checked(null, null);
#endregion
this.mainFrame.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.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.checkBoxHasShipVisited.DataContext = mdh;
this.checkBoxSanitaryMeasuresApplied.DataContext = mdh;
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;
this.checkSimplification.Checked += CheckSimplification_Checked;
this.checkSimplification.Unchecked += CheckSimplification_Checked;
#endregion
}
#region SetEnabled
public override void SetEnabled(bool enabled)
{
this.mdhGroupBox.IsEnabled = enabled;
this.dataGridPortOfCallLast30Days.IsEnabled = enabled;
this.buttonImportFromSEC.IsEnabled = enabled;
this.checkBoxHasShipVisited.IsEnabled = enabled;
this.dataGridInfectedAreas.IsEnabled = enabled;
this.checkBoxSanitaryMeasuresApplied.IsEnabled = enabled;
this.dataGridSanitaryMeasures.IsEnabled = enabled;
}
#endregion
#region Enable Controls based on Checkbox (fixed)
private void CheckBoxSanitaryControlExemption_Checked(object sender, RoutedEventArgs e)
{
this.textBoxPlaceOfIssue.IsEnabled = this.checkBoxSanitaryControlExemption.IsChecked ?? false;
this.textBoxPlaceOfIssue.IsReadOnly = !(this.checkBoxSanitaryControlExemption.IsChecked ?? false);
this.datePickerDateOfIssue.IsEnabled = this.checkBoxSanitaryControlExemption.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 CheckSimplification_Checked(object sender, RoutedEventArgs e)
{
bool simplified = this.checkSimplification.IsChecked ?? false;
this.locodePortWhereHealthDeclarationWasGiven.IsEnabled = simplified;
this.checkBoxAwareOfConditions.IsEnabled = !simplified;
this.checkBoxHasShipVisited.IsEnabled = !simplified;
this.checkBoxHavePersonsDied.IsEnabled = !simplified;
this.checkBoxIsSuspectedInfectious.IsEnabled = !simplified;
this.checkBoxReinspectionSanitary.IsEnabled = !simplified;
this.checkBoxSanitaryControlExemption.IsEnabled = !simplified;
this.checkBoxSanitaryMeasuresApplied.IsEnabled = !simplified;
this.checkBoxSickAnimalsOrPets.IsEnabled = !simplified;
this.checkBoxSickPersonsOnBoard.IsEnabled = !simplified;
this.checkBoxStowawaysOnBoard.IsEnabled = !simplified;
this.checkBoxTotalNumberSickHigherThan.IsEnabled = !simplified;
this.checkBoxWasMedicalConsulted.IsEnabled = !simplified;
this.dataGridInfectedAreas.IsEnabled = !simplified;
this.dataGridPortOfCallLast30Days.IsEnabled = !simplified;
this.dataGridSanitaryMeasures.IsEnabled = !simplified;
this.datePickerDateOfIssue.IsEnabled = !simplified;
this.textBoxPlaceOfIssue.IsEnabled = !simplified;
this.textBoxStowawaysJoiningLocation.IsEnabled = !simplified;
this.integerUpDownNumberOfDeaths.IsEnabled = !simplified;
this.integerUpDownNumberOfDeaths.IsReadOnly = simplified;
this.integerUpDownNumberOfIllPersons.IsEnabled = !simplified;
this.integerUpDownNumberOfIllPersons.IsReadOnly = simplified;
}
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);
}
#endregion
#region load/button event handler
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);
this.RegisterDatePickerChange(this.datePickerDateOfIssue, Message.NotificationClass.MDH);
}
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 ButtonImportFromExcel_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();
}
}
#endregion
#region SanitaryMeasures Grid
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 InfectedAreas Grid
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 PortOfCallLast30Days grid
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 Highlighting
public override void HighlightErrorMessageContainer()
{
if (this._mdhMessage.HasErrors)
{
HighlightService.HighlightControl(this.mdhGroupBox, HighlightService.HighlightStyle.ERROR, this._mdhMessage);
}
}
public override void HighlightViolationMessageContainer()
{
if (this._mdhMessage.HasViolations)
HighlightService.HighlightControl(this.mdhGroupBox, HighlightService.HighlightStyle.VIOLATION, this._mdhMessage);
}
#endregion
}
}