Added extra too far in the future validation on the client-side

This commit is contained in:
Daniel Schick 2024-09-17 09:40:36 +02:00
parent 470110ef5b
commit 8c23df8cda
10 changed files with 64 additions and 3 deletions

View File

@ -207,12 +207,14 @@ namespace BreCalClient
isEnabled &= this.datePickerETD.Value.HasValue; isEnabled &= this.datePickerETD.Value.HasValue;
if(this.datePickerETD.Value.HasValue) if(this.datePickerETD.Value.HasValue)
isEnabled &= (this.datePickerETD.Value.Value > DateTime.Now); isEnabled &= (this.datePickerETD.Value.Value > DateTime.Now);
isEnabled &= !this.datePickerETD.Value.IsTooFar();
break; break;
case ShipcallType.Arrival: case ShipcallType.Arrival:
isEnabled &= this.comboBoxArrivalBerth.SelectedItem != null; isEnabled &= this.comboBoxArrivalBerth.SelectedItem != null;
isEnabled &= this.datePickerETA.Value.HasValue; isEnabled &= this.datePickerETA.Value.HasValue;
if(this.datePickerETA.Value.HasValue) if(this.datePickerETA.Value.HasValue)
isEnabled &= (this.datePickerETA.Value.Value > DateTime.Now); isEnabled &= (this.datePickerETA.Value.Value > DateTime.Now);
isEnabled &= !this.datePickerETA.Value.IsTooFar();
break; break;
case ShipcallType.Shifting: case ShipcallType.Shifting:
isEnabled &= ((this.comboBoxDepartureBerth.SelectedItem != null) && (this.comboBoxArrivalBerth.SelectedItem != null)); isEnabled &= ((this.comboBoxDepartureBerth.SelectedItem != null) && (this.comboBoxArrivalBerth.SelectedItem != null));
@ -224,6 +226,8 @@ namespace BreCalClient
isEnabled &= (this.datePickerETA.Value.Value > DateTime.Now); isEnabled &= (this.datePickerETA.Value.Value > DateTime.Now);
if (this.datePickerETA.Value.HasValue && this.datePickerETD.Value.HasValue) if (this.datePickerETA.Value.HasValue && this.datePickerETD.Value.HasValue)
isEnabled &= (this.datePickerETA.Value.Value > this.datePickerETD.Value.Value); isEnabled &= (this.datePickerETA.Value.Value > this.datePickerETD.Value.Value);
isEnabled &= !this.datePickerETD.Value.IsTooFar();
isEnabled &= !this.datePickerETA.Value.IsTooFar();
break; break;
} }
} }

View File

@ -139,6 +139,12 @@ namespace BreCalClient
return false; return false;
} }
if(this.datePickerETA.Value.IsTooFar() || this.datePickerETA_End.Value.IsTooFar() || this.datePickerTidalWindowFrom.Value.IsTooFar() || this.datePickerTidalWindowTo.Value.IsTooFar())
{
message = BreCalClient.Resources.Resources.textTooFarInTheFuture;
return false;
}
return true; return true;
} }

View File

@ -149,6 +149,12 @@ namespace BreCalClient
return false; return false;
} }
if (this.datePickerETD.Value.IsTooFar() || this.datePickerETD_End.Value.IsTooFar() || this.datePickerTidalWindowFrom.Value.IsTooFar() || this.datePickerTidalWindowTo.Value.IsTooFar())
{
message = BreCalClient.Resources.Resources.textTooFarInTheFuture;
return false;
}
return true; return true;
} }

View File

@ -157,6 +157,13 @@ namespace BreCalClient
return false; return false;
} }
if (this.datePickerETA.Value.IsTooFar() || this.datePickerETA_End.Value.IsTooFar() || this.datePickerTidalWindowFrom.Value.IsTooFar() || this.datePickerTidalWindowTo.Value.IsTooFar() ||
this.datePickerETD.Value.IsTooFar() || this.datePickerETD_End.Value.IsTooFar())
{
message = BreCalClient.Resources.Resources.textTooFarInTheFuture;
return false;
}
return true; return true;
} }

View File

@ -5,6 +5,7 @@
using BreCalClient.misc.Model; using BreCalClient.misc.Model;
using System; using System;
using System.Runtime.Serialization;
using System.Windows; using System.Windows;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using Xceed.Wpf.Toolkit; using Xceed.Wpf.Toolkit;
@ -125,7 +126,14 @@ namespace BreCalClient
{ {
message = BreCalClient.Resources.Resources.textZoneEntryInThePast; message = BreCalClient.Resources.Resources.textZoneEntryInThePast;
return false; return false;
} }
if(this.datePickerATA.Value.IsTooFar() || this.datePickerATD.Value.IsTooFar() || this.datePickerETABerth.Value.IsTooFar() || this.datePickerETABerth_End.Value.IsTooFar() ||
this.datePickerETDBerth.Value.IsTooFar() || this.datePickerETDBerth_End.Value.IsTooFar() || this.datePickerLockTime.Value.IsTooFar() || this.datePickerZoneEntry.Value.IsTooFar())
{
message = BreCalClient.Resources.Resources.textTooFarInTheFuture;
return false;
}
return true; return true;
} }

View File

@ -144,6 +144,12 @@ namespace BreCalClient
return false; return false;
} }
if(this.datePickerOperationEnd.Value.IsTooFar() || this.datePickerOperationEnd_End.Value.IsTooFar() || this.datePickerOperationStart.Value.IsTooFar() || this.datePickerOperationStart_End.Value.IsTooFar())
{
message = BreCalClient.Resources.Resources.textTooFarInTheFuture;
return false;
}
return true; return true;
} }

View File

@ -3,10 +3,8 @@
// //
using BreCalClient.misc.Model; using BreCalClient.misc.Model;
using Newtonsoft.Json.Linq;
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace BreCalClient namespace BreCalClient
{ {
@ -60,6 +58,17 @@ namespace BreCalClient
#region public helper #region public helper
public static bool IsTooFar(this DateTime datetime)
{
return datetime > DateTime.Now.AddYears(1);
}
public static bool IsTooFar(this DateTime? datetime)
{
if (datetime == null) return false;
return datetime > DateTime.Now.AddYears(1);
}
public static bool IsTypeFlagSet(this Participant participant, ParticipantType flag) public static bool IsTypeFlagSet(this Participant participant, ParticipantType flag)
{ {
return (participant.Type & (uint)flag) != 0; return (participant.Type & (uint)flag) != 0;

View File

@ -1253,6 +1253,15 @@ namespace BreCalClient.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to A time value is too far in the future.
/// </summary>
public static string textTooFarInTheFuture {
get {
return ResourceManager.GetString("textTooFarInTheFuture", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Set as a fixed order. /// Looks up a localized string similar to Set as a fixed order.
/// </summary> /// </summary>

View File

@ -544,4 +544,7 @@
<data name="textTidalBothValues" xml:space="preserve"> <data name="textTidalBothValues" xml:space="preserve">
<value>Für das Tidenfenster müssen beide Zeiten angegeben werden</value> <value>Für das Tidenfenster müssen beide Zeiten angegeben werden</value>
</data> </data>
<data name="textTooFarInTheFuture" xml:space="preserve">
<value>Eine Zeiteingabe ist zu weit in der Zukunft</value>
</data>
</root> </root>

View File

@ -502,6 +502,9 @@
<data name="textTo" xml:space="preserve"> <data name="textTo" xml:space="preserve">
<value>to</value> <value>to</value>
</data> </data>
<data name="textTooFarInTheFuture" xml:space="preserve">
<value>A time value is too far in the future</value>
</data>
<data name="textTooltipSetFixedOrder" xml:space="preserve"> <data name="textTooltipSetFixedOrder" xml:space="preserve">
<value>Set as a fixed order</value> <value>Set as a fixed order</value>
</data> </data>