diff --git a/CHANGELIST.md b/CHANGELIST.md index cc6faec2..119e3e97 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -42,6 +42,7 @@ - Add DIC parameters tests - Add unused min/max parameters for numeric inputs - Add Int32 array input type +- Wire up input boundaries ### 3.2.4 (2024-11-24) diff --git a/MPF.ExecutionContexts/Data/Int16Input.cs b/MPF.ExecutionContexts/Data/Int16Input.cs index c15a6656..7e713b03 100644 --- a/MPF.ExecutionContexts/Data/Int16Input.cs +++ b/MPF.ExecutionContexts/Data/Int16Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : short.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : short.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : short.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out short? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : short.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string /// diff --git a/MPF.ExecutionContexts/Data/Int32ArrInput.cs b/MPF.ExecutionContexts/Data/Int32ArrInput.cs index 8655ca0c..9844eeb9 100644 --- a/MPF.ExecutionContexts/Data/Int32ArrInput.cs +++ b/MPF.ExecutionContexts/Data/Int32ArrInput.cs @@ -105,6 +105,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value[i] = _required ? null : int.MinValue; + Value[i] = (MinValue != null && Value[i] < MinValue) ? MinValue : Value[i]; + Value[i] = (MaxValue != null && Value[i] > MaxValue) ? MaxValue : Value[i]; return !_required; } @@ -113,11 +115,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value[i] = value; + Value[i] = (MinValue != null && Value[i] < MinValue) ? MinValue : Value[i]; + Value[i] = (MaxValue != null && Value[i] > MaxValue) ? MaxValue : Value[i]; continue; } // Return value based on required flag Value[i] = _required ? null : int.MinValue; + Value[i] = (MinValue != null && Value[i] < MinValue) ? MinValue : Value[i]; + Value[i] = (MaxValue != null && Value[i] > MaxValue) ? MaxValue : Value[i]; return !_required; } diff --git a/MPF.ExecutionContexts/Data/Int32Input.cs b/MPF.ExecutionContexts/Data/Int32Input.cs index e8390550..96f1e79b 100644 --- a/MPF.ExecutionContexts/Data/Int32Input.cs +++ b/MPF.ExecutionContexts/Data/Int32Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : int.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : int.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : int.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out int? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : int.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string /// diff --git a/MPF.ExecutionContexts/Data/Int64Input.cs b/MPF.ExecutionContexts/Data/Int64Input.cs index 5385551c..dcb3116b 100644 --- a/MPF.ExecutionContexts/Data/Int64Input.cs +++ b/MPF.ExecutionContexts/Data/Int64Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : long.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : long.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : long.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out long? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : long.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string /// diff --git a/MPF.ExecutionContexts/Data/Int8Input.cs b/MPF.ExecutionContexts/Data/Int8Input.cs index f002cca9..e602944a 100644 --- a/MPF.ExecutionContexts/Data/Int8Input.cs +++ b/MPF.ExecutionContexts/Data/Int8Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : sbyte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : sbyte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : sbyte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out sbyte? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : sbyte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string /// diff --git a/MPF.ExecutionContexts/Data/UInt16Input.cs b/MPF.ExecutionContexts/Data/UInt16Input.cs index f9348bf2..f16d14d8 100644 --- a/MPF.ExecutionContexts/Data/UInt16Input.cs +++ b/MPF.ExecutionContexts/Data/UInt16Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : ushort.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : ushort.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : ushort.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out ushort? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : ushort.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string /// diff --git a/MPF.ExecutionContexts/Data/UInt32Input.cs b/MPF.ExecutionContexts/Data/UInt32Input.cs index f78187fb..202d45ae 100644 --- a/MPF.ExecutionContexts/Data/UInt32Input.cs +++ b/MPF.ExecutionContexts/Data/UInt32Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : uint.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : uint.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : uint.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,11 +138,15 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out uint? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : uint.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } diff --git a/MPF.ExecutionContexts/Data/UInt64Input.cs b/MPF.ExecutionContexts/Data/UInt64Input.cs index ffa116a5..6ba60b65 100644 --- a/MPF.ExecutionContexts/Data/UInt64Input.cs +++ b/MPF.ExecutionContexts/Data/UInt64Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : ulong.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : ulong.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : ulong.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out ulong? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : ulong.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string /// diff --git a/MPF.ExecutionContexts/Data/UInt8Input.cs b/MPF.ExecutionContexts/Data/UInt8Input.cs index e920919d..16170706 100644 --- a/MPF.ExecutionContexts/Data/UInt8Input.cs +++ b/MPF.ExecutionContexts/Data/UInt8Input.cs @@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data if (index + 1 >= parts.Length) { Value = _required ? null : byte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data { index++; Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : byte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data if (string.IsNullOrEmpty(val)) { Value = _required ? null : byte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } @@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data if (ParseValue(val, out byte? value) && value != null) { Value = value; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return true; } // Return value based on required flag Value = _required ? null : byte.MinValue; + Value = (MinValue != null && Value < MinValue) ? MinValue : Value; + Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value; return !_required; } return false; } - + /// /// Parse a value from a string ///