diff --git a/src/BreCalClient/EditShipcallControl.xaml.cs b/src/BreCalClient/EditShipcallControl.xaml.cs
index 322b534..65ae975 100644
--- a/src/BreCalClient/EditShipcallControl.xaml.cs
+++ b/src/BreCalClient/EditShipcallControl.xaml.cs
@@ -205,15 +205,23 @@ namespace BreCalClient
case ShipcallType.Departure:
isEnabled &= this.comboBoxDepartureBerth.SelectedItem != null;
isEnabled &= this.datePickerETD.Value.HasValue;
+ if(this.datePickerETD.Value.HasValue)
+ isEnabled &= (this.datePickerETD.Value.Value > DateTime.Now);
break;
case ShipcallType.Arrival:
isEnabled &= this.comboBoxArrivalBerth.SelectedItem != null;
isEnabled &= this.datePickerETA.Value.HasValue;
+ if(this.datePickerETA.Value.HasValue)
+ isEnabled &= (this.datePickerETA.Value.Value > DateTime.Now);
break;
case ShipcallType.Shifting:
isEnabled &= ((this.comboBoxDepartureBerth.SelectedItem != null) && (this.comboBoxArrivalBerth.SelectedItem != null));
isEnabled &= this.datePickerETD.Value.HasValue;
isEnabled &= this.datePickerETA.Value.HasValue;
+ if (this.datePickerETD.Value.HasValue)
+ isEnabled &= (this.datePickerETD.Value.Value > DateTime.Now);
+ if (this.datePickerETA.Value.HasValue)
+ isEnabled &= (this.datePickerETA.Value.Value > DateTime.Now);
break;
}
}
diff --git a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs
index 8a38a07..e7c2bb7 100644
--- a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs
+++ b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs
@@ -4,6 +4,7 @@
using BreCalClient.misc.Model;
using System;
+using System.Runtime.Serialization;
using System.Windows;
using static BreCalClient.Extensions;
@@ -70,9 +71,16 @@ namespace BreCalClient
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
- this.CopyToModel();
- this.DialogResult = true;
- this.Close();
+ if (!CheckValues(out string message))
+ {
+ MessageBox.Show(message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
+ }
+ else
+ {
+ this.CopyToModel();
+ this.DialogResult = true;
+ this.Close();
+ }
}
private void buttonCancel_Click(object sender, RoutedEventArgs e)
@@ -85,6 +93,49 @@ namespace BreCalClient
#region private methods
+ private bool CheckValues(out string message)
+ {
+ message = "";
+
+ if (this.datePickerETA.Value.HasValue && (this.datePickerETA.Value.Value < DateTime.Now) && (this.datePickerETA_End.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textETAInThePast;
+ return false;
+ }
+
+ if(this.datePickerETA_End.Value.HasValue && this.datePickerETA_End.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textETDInThePast;
+ return false;
+ }
+
+ if(this.datePickerETA.Value.HasValue && this.datePickerETA_End.Value.HasValue && this.datePickerETA.Value > this.datePickerETA_End.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowFrom.Value.HasValue && (this.datePickerTidalWindowFrom.Value.Value < DateTime.Now) && (this.datePickerTidalWindowTo.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textTideTimesInThePast;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowTo.Value.HasValue && this.datePickerTidalWindowTo.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textTideTimesInThePast;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowFrom.Value.HasValue && this.datePickerTidalWindowTo.Value.HasValue && this.datePickerTidalWindowFrom.Value > this.datePickerTidalWindowTo.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ return true;
+ }
+
private void CopyToModel()
{
if (this.ShipcallModel.Shipcall != null)
diff --git a/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs
index 0a778fd..17dc94b 100644
--- a/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs
+++ b/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs
@@ -80,9 +80,16 @@ namespace BreCalClient
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
- this.CopyToModel();
- this.DialogResult = true;
- this.Close();
+ if (!CheckValues(out string message))
+ {
+ System.Windows.MessageBox.Show(message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
+ }
+ else
+ {
+ this.CopyToModel();
+ this.DialogResult = true;
+ this.Close();
+ }
}
private void buttonCancel_Click(object sender, RoutedEventArgs e)
@@ -95,6 +102,50 @@ namespace BreCalClient
#region private methods
+
+ private bool CheckValues(out string message)
+ {
+ message = "";
+
+ if (this.datePickerETD.Value.HasValue && (this.datePickerETD.Value.Value < DateTime.Now) && (this.datePickerETD_End.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textETAInThePast;
+ return false;
+ }
+
+ if (this.datePickerETD_End.Value.HasValue && this.datePickerETD_End.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textETDInThePast;
+ return false;
+ }
+
+ if (this.datePickerETD.Value.HasValue && this.datePickerETD_End.Value.HasValue && this.datePickerETD.Value > this.datePickerETD_End.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowFrom.Value.HasValue && (this.datePickerTidalWindowFrom.Value.Value < DateTime.Now) && (this.datePickerTidalWindowTo.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textTideTimesInThePast;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowTo.Value.HasValue && this.datePickerTidalWindowTo.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textTideTimesInThePast;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowFrom.Value.HasValue && this.datePickerTidalWindowTo.Value.HasValue && this.datePickerTidalWindowFrom.Value > this.datePickerTidalWindowTo.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ return true;
+ }
+
private void CopyToModel()
{
if (this.ShipcallModel.Shipcall != null)
diff --git a/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs
index 5fa79ad..f0cf0e9 100644
--- a/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs
+++ b/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs
@@ -71,9 +71,16 @@ namespace BreCalClient
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
- this.CopyToModel();
- this.DialogResult = true;
- this.Close();
+ if (!CheckValues(out string message))
+ {
+ System.Windows.MessageBox.Show(message, "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
+ }
+ else
+ {
+ this.CopyToModel();
+ this.DialogResult = true;
+ this.Close();
+ }
}
private void buttonCancel_Click(object sender, RoutedEventArgs e)
@@ -86,6 +93,67 @@ namespace BreCalClient
#region private methods
+ private bool CheckValues(out string message)
+ {
+ message = "";
+
+ if (this.datePickerETA.Value.HasValue && (this.datePickerETA.Value.Value < DateTime.Now) && (this.datePickerETA_End.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textETAInThePast;
+ return false;
+ }
+
+ if (this.datePickerETA_End.Value.HasValue && this.datePickerETA_End.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textETDInThePast;
+ return false;
+ }
+
+ if (this.datePickerETA.Value.HasValue && this.datePickerETA_End.Value.HasValue && this.datePickerETA.Value > this.datePickerETA_End.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ if (this.datePickerETD.Value.HasValue && (this.datePickerETD.Value.Value < DateTime.Now) && (this.datePickerETD_End.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textETAInThePast;
+ return false;
+ }
+
+ if (this.datePickerETD_End.Value.HasValue && this.datePickerETD_End.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textETDInThePast;
+ return false;
+ }
+
+ if (this.datePickerETD.Value.HasValue && this.datePickerETD_End.Value.HasValue && this.datePickerETD.Value > this.datePickerETD_End.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowFrom.Value.HasValue && (this.datePickerTidalWindowFrom.Value.Value < DateTime.Now) && (this.datePickerTidalWindowTo.Value == null))
+ {
+ message = BreCalClient.Resources.Resources.textTideTimesInThePast;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowTo.Value.HasValue && this.datePickerTidalWindowTo.Value < DateTime.Now)
+ {
+ message = BreCalClient.Resources.Resources.textTideTimesInThePast;
+ return false;
+ }
+
+ if (this.datePickerTidalWindowFrom.Value.HasValue && this.datePickerTidalWindowTo.Value.HasValue && this.datePickerTidalWindowFrom.Value > this.datePickerTidalWindowTo.Value)
+ {
+ message = BreCalClient.Resources.Resources.textEndValueBeforeStartValue;
+ return false;
+ }
+
+ return true;
+ }
+
private void CopyToModel()
{
if (this.ShipcallModel.Shipcall != null)
diff --git a/src/BreCalClient/EditTimesControl.xaml b/src/BreCalClient/EditTimesControl.xaml
index ad03ed9..03cac40 100644
--- a/src/BreCalClient/EditTimesControl.xaml
+++ b/src/BreCalClient/EditTimesControl.xaml
@@ -44,7 +44,7 @@
-
+