diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj
index e21933b8..f59e4e91 100644
--- a/ENI2/ENI2.csproj
+++ b/ENI2/ENI2.csproj
@@ -36,7 +36,7 @@
5.4.0.0
true
publish.html
- 2
+ 3
7.8.0.%2a
false
true
diff --git a/bsmd.database/IMDGPosition.cs b/bsmd.database/IMDGPosition.cs
index eab170f8..e14a782d 100644
--- a/bsmd.database/IMDGPosition.cs
+++ b/bsmd.database/IMDGPosition.cs
@@ -479,6 +479,30 @@ namespace bsmd.database
errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "IMOClass", null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD" : "HAZA"));
}
+ if(!this.Bay.IsNullOrEmpty())
+ {
+ const string pattern = @"^[0-9]{3}$";
+ Regex regex = new Regex(pattern);
+ if (!regex.IsMatch(this.Bay))
+ errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "Bay", null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD" : "HAZA"));
+ }
+
+ if(!this.Row.IsNullOrEmpty())
+ {
+ const string pattern = @"^[0-9]{2}$";
+ Regex regex = new Regex(pattern);
+ if (!regex.IsMatch(this.Row))
+ errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "Row", null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD" : "HAZA"));
+ }
+
+ if(!this.Tier.IsNullOrEmpty())
+ {
+ const string pattern = @"^[0-9]{2}$";
+ Regex regex = new Regex(pattern);
+ if (!regex.IsMatch(this.Tier))
+ errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "Tier", null, this.Title, this.Identifier, this.HAZ.IsDeparture ? "HAZD" : "HAZA"));
+ }
+
}
#endregion
diff --git a/bsmd.database/TOWA.cs b/bsmd.database/TOWA.cs
index d80ce5c7..26a1fba4 100644
--- a/bsmd.database/TOWA.cs
+++ b/bsmd.database/TOWA.cs
@@ -258,6 +258,16 @@ namespace bsmd.database
#endregion
+ #region Validation
+
+ public override void Validate(List errors, List violations)
+ {
+ if (this.TowageOnArrivalDraught_DMT.HasValue && ((this.TowageOnArrivalDraught_DMT.Value < 10) || (this.TowageOnArrivalDraught_DMT.Value > 200)))
+ violations.Add(RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "Check draught on arrival", null, this.Title, this.Identifier, this.Tablename));
+ }
+
+ #endregion
+
}
}
diff --git a/bsmd.database/TOWD.cs b/bsmd.database/TOWD.cs
index 7758c908..39f132a2 100644
--- a/bsmd.database/TOWD.cs
+++ b/bsmd.database/TOWD.cs
@@ -241,6 +241,16 @@ namespace bsmd.database
#endregion
+ #region Validation
+
+ public override void Validate(List errors, List violations)
+ {
+ if (this.TowageOnDepartureDraught_DMT.HasValue && ((this.TowageOnDepartureDraught_DMT.Value < 10) || (this.TowageOnDepartureDraught_DMT.Value > 200)))
+ violations.Add(RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "Check draught on departure", null, this.Title, this.Identifier, this.Tablename));
+ }
+
+ #endregion
+
}
}
diff --git a/bsmd.database/TreatmentFacilityProvider.cs b/bsmd.database/TreatmentFacilityProvider.cs
index 40d3eca6..c434fa7d 100644
--- a/bsmd.database/TreatmentFacilityProvider.cs
+++ b/bsmd.database/TreatmentFacilityProvider.cs
@@ -25,7 +25,7 @@ namespace bsmd.database
[ShowReport]
[MaxLength(70)]
[ENI2Validation]
- [Validation(ValidationCode.STRING_MAXLEN, 70)]
+ [Validation(ValidationCode.NOT_NULL_MAX_LEN, 70)]
public string TreatmentFacilityProviderName { get; set; }
public string Identifier { get; set; }
diff --git a/bsmd.database/WAS_RCPT.cs b/bsmd.database/WAS_RCPT.cs
index f76a4595..527a3927 100644
--- a/bsmd.database/WAS_RCPT.cs
+++ b/bsmd.database/WAS_RCPT.cs
@@ -347,6 +347,11 @@ namespace bsmd.database
wasteReceived.Validate(errors, violations);
}
+ if(TreatmentFacilityProviderText.IsNullOrEmpty())
+ {
+ errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "TreatmentFacilityProviderName empty", null, this.Title, this.IdentificationNumber, this.Tablename));
+ }
+
bool entryMissing = false;
string missingType = "";