diff --git a/ENI-2/ENI2/ENI2/Controls/ConditionGroupControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/ConditionGroupControl.xaml.cs index 0d630dd8..d073fbb4 100644 --- a/ENI-2/ENI2/ENI2/Controls/ConditionGroupControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/Controls/ConditionGroupControl.xaml.cs @@ -14,17 +14,23 @@ namespace ENI2.Controls /// public partial class ConditionGroupControl : UserControl { + private ConditionGroup _conditionGroup; + public ConditionGroupControl() { InitializeComponent(); Loaded += ConditionGroupControl_Loaded; } - public ConditionGroup ConditionGroup { get; set; } + public ConditionGroup ConditionGroup + { + get { return this._conditionGroup; } + set { this._conditionGroup = value; this.DataContext = value; } + } private void ConditionGroupControl_Loaded(object sender, RoutedEventArgs e) { - this.DataContext = this.ConditionGroup; + } } } diff --git a/ENI-2/ENI2/ENI2/Controls/ValidationConditionControl.xaml b/ENI-2/ENI2/ENI2/Controls/ValidationConditionControl.xaml new file mode 100644 index 00000000..66686e19 --- /dev/null +++ b/ENI-2/ENI2/ENI2/Controls/ValidationConditionControl.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + diff --git a/ENI-2/ENI2/ENI2/Controls/ValidationConditionControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/ValidationConditionControl.xaml.cs new file mode 100644 index 00000000..d889fd43 --- /dev/null +++ b/ENI-2/ENI2/ENI2/Controls/ValidationConditionControl.xaml.cs @@ -0,0 +1,49 @@ +// Copyright (c) 2017 schick Informatik +// Description: Plugin Control für eine Validierungsbedingung +// + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +using bsmd.database; + +namespace ENI2.Controls +{ + /// + /// Interaction logic for ValidationConditionControl.xaml + /// + public partial class ValidationConditionControl : UserControl + { + private ValidationCondition _validationCondition; + + public ValidationConditionControl() + { + InitializeComponent(); + Loaded += ValidationConditionControl_Loaded; + } + + private void ValidationConditionControl_Loaded(object sender, RoutedEventArgs e) + { + this.comboBoxOperator.ItemsSource = Util.EnumHelper.GetAllValuesAndDescription(typeof(ValidationCondition.ConditionOperatorEnum)); + } + + public ValidationCondition ValidationCondition + { + get { return this._validationCondition; } + set { this.gridContent.DataContext = value; this._validationCondition = value; } + } + + } +} diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj index 08aa1b97..e6ea1f52 100644 --- a/ENI-2/ENI2/ENI2/ENI2.csproj +++ b/ENI-2/ENI2/ENI2/ENI2.csproj @@ -181,6 +181,9 @@ RuleControl.xaml + + ValidationConditionControl.xaml + @@ -354,6 +357,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml b/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml index e3ee59af..a6642f74 100644 --- a/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml +++ b/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml @@ -9,7 +9,7 @@ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:p="clr-namespace:ENI2.Properties" mc:Ignorable="d" - Title="{x:Static p:Resources.textEditRules}" Height="410" Width="800" WindowStyle="SingleBorderWindow" Background="AliceBlue"> + Title="{x:Static p:Resources.textEditRules}" Height="410" Width="800" WindowStyle="SingleBorderWindow" Background="AliceBlue" Icon="/ENI2;component/Resources/mail_forward.png"> diff --git a/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml.cs index e14ef57b..788ecef1 100644 --- a/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml.cs +++ b/ENI-2/ENI2/ENI2/EditControls/EditRulesDialog.xaml.cs @@ -21,6 +21,7 @@ namespace ENI2.EditControls private ConditionGroup rootCondition; private ObservableCollection rootGroupList = new ObservableCollection(); private ConditionGroupControl groupControl = new ConditionGroupControl(); + private ValidationConditionControl vcControl = new ValidationConditionControl(); public EditRulesDialog() { @@ -163,7 +164,9 @@ namespace ENI2.EditControls else { // Condition - + this.groupBoxConditionDetails.Header = Properties.Resources.textValidationCondition; + this.vcControl.ValidationCondition = (ValidationCondition)treeViewRules.SelectedItem; + this.groupBoxConditionContainer.Children.Add(this.vcControl); } } } diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs index 1f30b97b..9804080c 100644 --- a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs +++ b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs @@ -1763,6 +1763,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to Failure message. + /// + public static string textFailureMessage { + get { + return ResourceManager.GetString("textFailureMessage", resourceCulture); + } + } + /// /// Looks up a localized string similar to Fax. /// @@ -1781,6 +1790,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to Field name. + /// + public static string textFieldName { + get { + return ResourceManager.GetString("textFieldName", resourceCulture); + } + } + /// /// Looks up a localized string similar to First name. /// @@ -4004,6 +4022,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to Validation condition. + /// + public static string textValidationCondition { + get { + return ResourceManager.GetString("textValidationCondition", resourceCulture); + } + } + /// /// Looks up a localized string similar to Valid exemption. /// @@ -4022,6 +4049,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to Value. + /// + public static string textValue { + get { + return ResourceManager.GetString("textValue", resourceCulture); + } + } + /// /// Looks up a localized string similar to Vehicle licence plate. /// diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.resx b/ENI-2/ENI2/ENI2/Properties/Resources.resx index 7b56afd7..aafe21db 100644 --- a/ENI-2/ENI2/ENI2/Properties/Resources.resx +++ b/ENI-2/ENI2/ENI2/Properties/Resources.resx @@ -1495,4 +1495,16 @@ Group + + Failure message + + + Field name + + + Validation condition + + + Value + \ No newline at end of file diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 7c636122..bc48f86d 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Source/bsmd.database/AGNT.cs b/nsw/Source/bsmd.database/AGNT.cs index 3b715f77..e5a86394 100644 --- a/nsw/Source/bsmd.database/AGNT.cs +++ b/nsw/Source/bsmd.database/AGNT.cs @@ -9,7 +9,6 @@ using System; using System.Collections.Generic; -using System.Data; using System.Data.SqlClient; namespace bsmd.database @@ -36,53 +35,63 @@ namespace bsmd.database [Validation2(ValidationCode.NOT_NULL)] [LookupName("AGNT.AgentCompanyName")] [MaxLength(100)] + [ENI2Validation] public string AgentCompanyName { get; set; } [ShowReport] [LookupName("AGNT.AgentStreetAndNumber")] [MaxLength(100)] + [ENI2Validation] public string AgentStreetAndNumber { get; set; } [ShowReport] [LookupName("AGNT.AgentPostalCode")] [MaxLength(100)] + [ENI2Validation] public string AgentPostalCode { get; set; } [ShowReport] [LookupName("AGNT.AgentCity")] [MaxLength(100)] + [ENI2Validation] public string AgentCity { get; set; } [ShowReport] [LookupName("AGNT.AgentCountry")] [MaxLength(100)] + [ENI2Validation] public string AgentCountry { get; set; } [ShowReport] [LookupName("AGNT.AgentLastName")] [Validation2(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string AgentLastName { get; set; } [ShowReport] [LookupName("AGNT.AgentFirstName")] [MaxLength(100)] + [ENI2Validation] public string AgentFirstName { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("AGNT.AgentPhone")] [MaxLength(100)] + [ENI2Validation] public string AgentPhone { get; set; } [ShowReport] [LookupName("AGNT.AgentFax")] [MaxLength(100)] + [ENI2Validation] public string AgentFax { get; set; } [ShowReport] [LookupName("AGNT.AgentEMail")] [MaxLength(100)] + [ENI2Validation] public string AgentEMail { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/ATA.cs b/nsw/Source/bsmd.database/ATA.cs index 9b803248..0ab24b14 100644 --- a/nsw/Source/bsmd.database/ATA.cs +++ b/nsw/Source/bsmd.database/ATA.cs @@ -8,7 +8,6 @@ // Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. using System; -using System.Data; using System.Data.SqlClient; using System.Collections.Generic; @@ -27,6 +26,7 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.TIME_IMPLAUSIBLE)] [LookupName("ATA.ATAPortOfCall")] + [ENI2Validation] public DateTime? ATAPortOfCall { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/ATD.cs b/nsw/Source/bsmd.database/ATD.cs index ae0b27a3..4c852449 100644 --- a/nsw/Source/bsmd.database/ATD.cs +++ b/nsw/Source/bsmd.database/ATD.cs @@ -8,7 +8,6 @@ // Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. using System; -using System.Data; using System.Data.SqlClient; using System.Collections.Generic; @@ -27,6 +26,7 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.TIME_IMPLAUSIBLE)] [LookupName("ATD.ATDPortOfCall")] + [ENI2Validation] public DateTime? ATDPortOfCall { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/BKRA.cs b/nsw/Source/bsmd.database/BKRA.cs index 8e3fe224..707e2d1b 100644 --- a/nsw/Source/bsmd.database/BKRA.cs +++ b/nsw/Source/bsmd.database/BKRA.cs @@ -27,10 +27,12 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string BunkerFuelType { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? BunkerFuelQuantity_TNE { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/BPOL.cs b/nsw/Source/bsmd.database/BPOL.cs index f43e4263..d023a1bc 100644 --- a/nsw/Source/bsmd.database/BPOL.cs +++ b/nsw/Source/bsmd.database/BPOL.cs @@ -28,10 +28,12 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? StowawaysOnBoard { get; set; } [LookupName("BPOL.CruiseShip")] + [ENI2Validation] public bool? CruiseShip { get; set; } public List PortOfItineraries { get { return this.poi; } } diff --git a/nsw/Source/bsmd.database/BRKD.cs b/nsw/Source/bsmd.database/BRKD.cs index b7244a66..1866c484 100644 --- a/nsw/Source/bsmd.database/BRKD.cs +++ b/nsw/Source/bsmd.database/BRKD.cs @@ -27,10 +27,12 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string BunkerFuelType { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? BunkerFuelQuantity_TNE { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/CREW.cs b/nsw/Source/bsmd.database/CREW.cs index 82e07a00..c22b400b 100644 --- a/nsw/Source/bsmd.database/CREW.cs +++ b/nsw/Source/bsmd.database/CREW.cs @@ -28,21 +28,25 @@ namespace bsmd.database [ReportDisplayName("Last name")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string CrewMemberLastName { get; set; } [ShowReport] [ReportDisplayName("First name")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string CrewMemberFirstName { get; set; } [ShowReport] [ReportDisplayName("Place of birth")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string CrewMemberPlaceOfBirth { get; set; } [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? CrewMemberDateOfBirth { get; set; } [ShowReport] @@ -56,7 +60,8 @@ namespace bsmd.database return string.Empty; } } - + + [ENI2Validation] public byte? CrewMemberGender { get; set; } [ShowReport] @@ -67,9 +72,11 @@ namespace bsmd.database [ReportDisplayName("Nationality")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(2)] + [ENI2Validation] public string CrewMemberNationality { get; set; } [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? CrewMemberIdentityDocumentType { get; set; } [ShowReport] @@ -80,20 +87,24 @@ namespace bsmd.database [ReportDisplayName("Identity document id")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string CrewMemberIdentityDocumentId { get; set; } [ShowReport] [ReportDisplayName("Visa number")] // [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string CrewMemberVisaNumber { get; set; } [ShowReport] [ReportDisplayName("Duty")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string CrewMemberDuty { get; set; } + [ENI2Validation] public bool IsDeparture { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/CallPurpose.cs b/nsw/Source/bsmd.database/CallPurpose.cs index cbe2ba8e..89795728 100644 --- a/nsw/Source/bsmd.database/CallPurpose.cs +++ b/nsw/Source/bsmd.database/CallPurpose.cs @@ -27,10 +27,12 @@ namespace bsmd.database public NOA_NOD NOA_NOD { get; set; } [ShowReport] + [ENI2Validation] public int CallPurposeCode { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string CallPurposeDescription { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/Customer.cs b/nsw/Source/bsmd.database/Customer.cs index 66412c4a..c7e9494b 100644 --- a/nsw/Source/bsmd.database/Customer.cs +++ b/nsw/Source/bsmd.database/Customer.cs @@ -29,33 +29,43 @@ namespace bsmd.database #region Properties [MaxLength(100)] + [ENI2Validation] public string Name { get; set; } [MaxLength(50)] + [ENI2Validation] public string Phone { get; set; } [MaxLength(100)] + [ENI2Validation] public string Email { get; set; } [MaxLength(50)] + [ENI2Validation] public string ContactFirstName { get; set; } [MaxLength(50)] + [ENI2Validation] public string ContactLastName { get; set; } [MaxLength(50)] + [ENI2Validation] public string StreetAndNumber { get; set; } [MaxLength(50)] + [ENI2Validation] public string PostalCode { get; set; } [MaxLength(50)] + [ENI2Validation] public string City { get; set; } [MaxLength(50)] + [ENI2Validation] public string Country { get; set; } [MaxLength(50)] + [ENI2Validation] public string CustomerNumber { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/HAZ.cs b/nsw/Source/bsmd.database/HAZ.cs index 49aefc15..ebd94399 100644 --- a/nsw/Source/bsmd.database/HAZ.cs +++ b/nsw/Source/bsmd.database/HAZ.cs @@ -29,40 +29,51 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? NoDPGOnBoardOnArrival { get; set; } - [ShowReport] + [ShowReport] + [ENI2Validation] public bool? DPGManifestOnBoardOnArrival { get; set; } [ShowReport] + [ENI2Validation] public byte? INFShipClass { get; set; } [ShowReport] + [ENI2Validation] public bool? MOUBaltic { get; set; } [ShowReport] + [ENI2Validation] public bool? DPGClassificationIMDG { get; set; } [ShowReport] + [ENI2Validation] public bool? DPGClassificationIGC { get; set; } [ShowReport] + [ENI2Validation] public bool? DPGClassificationIBC { get; set; } [ShowReport] + [ENI2Validation] public bool? DPGClassificationIMSBC { get; set; } [ShowReport] + [ENI2Validation] public bool? DPGClassificationMARPOL_ANNEX_I { get; set; } // DK + [ENI2Validation] public string DPGContactFamilyName { get; set; } // DK + [ENI2Validation] public string DPGContactPhone { get; set; } - + public List IMDGPositions { get { return this.imdgPositions; } } - + public List IBCPositions { get { return this.ibcPositions; } } public List IGCPositions { get { return this.igcPositions; } } @@ -73,6 +84,7 @@ namespace bsmd.database // selektor HAZA / HAZD [ShowReport] + [ENI2Validation] public bool IsDeparture { get { return this._isDeparture; } set { this._isDeparture = value; } @@ -82,6 +94,7 @@ namespace bsmd.database /// No NSW field! Set to determine whether HAZ info should be reported to the NSW /// [ShowReport] + [ENI2Validation] public string TransmissionType { get; set; } public bool HasPositions diff --git a/nsw/Source/bsmd.database/IBCPosition.cs b/nsw/Source/bsmd.database/IBCPosition.cs index 0e17059d..943b5326 100644 --- a/nsw/Source/bsmd.database/IBCPosition.cs +++ b/nsw/Source/bsmd.database/IBCPosition.cs @@ -59,11 +59,13 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string ProductName { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? PollutionCategory { get; set; } public string PollutionCategoryDisplay @@ -77,6 +79,7 @@ namespace bsmd.database } [ShowReport] + [ENI2Validation] public byte? Hazards { get; set; } public string HazardsDisplay @@ -91,6 +94,7 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? FlashpointInformation { get; set; } public string FlashpointInformationDisplay @@ -105,32 +109,39 @@ namespace bsmd.database [ShowReport] [MaxLength(11)] + [ENI2Validation] public string Flashpoint_CEL { get; set; } + [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] - + [ENI2Validation] public double? Quantity_KGM { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(24)] + [ENI2Validation] public string StowagePosition { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfLoading { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfDischarge { get; set; } [ShowReport] + [ENI2Validation] public bool? SpecRef15_19 { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string Remarks { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/IGCPosition.cs b/nsw/Source/bsmd.database/IGCPosition.cs index cc7708cf..843cdbff 100644 --- a/nsw/Source/bsmd.database/IGCPosition.cs +++ b/nsw/Source/bsmd.database/IGCPosition.cs @@ -28,38 +28,46 @@ namespace bsmd.database [ShowReport] [MaxLength(4)] + [ENI2Validation] public string UNNumber { get; set; } [ShowReport] [MaxLength(10)] + [ENI2Validation] public string IMOClass { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string ProductName { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? Quantity_KGM { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(24)] + [ENI2Validation] public string StowagePosition { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfLoading { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfDischarge { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string Remarks { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/IMDGPosition.cs b/nsw/Source/bsmd.database/IMDGPosition.cs index 97839343..ec848100 100644 --- a/nsw/Source/bsmd.database/IMDGPosition.cs +++ b/nsw/Source/bsmd.database/IMDGPosition.cs @@ -32,125 +32,158 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(10)] + [ENI2Validation] public string UNNumber { get; set; } [ShowReport] + [ENI2Validation] public byte? PackingGroup { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string ProperShippingName { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(10)] + [ENI2Validation] public string IMOClass { get; set; } [ShowReport] [MaxLength(10)] + [ENI2Validation] public string CompatibilityGroup { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string TechnicalName { get; set; } [ShowReport] + [ENI2Validation] public double? NetExplosiveMass_KGM { get; set; } [ShowReport] [MaxLength(10)] + [ENI2Validation] public string Flashpoint_CEL { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string Class7NuclideName { get; set; } [ShowReport] + [ENI2Validation] public double? Class7MaxActivity_BQL { get; set; } [ShowReport] + [ENI2Validation] public int? Class7Category { get; set; } [ShowReport] + [ENI2Validation] public double? Class7TransportIndex { get; set; } [ShowReport] + [ENI2Validation] public int? Class7CSI { get; set; } [ShowReport] + [ENI2Validation] public double? ControlTemperature_CEL { get; set; } [ShowReport] + [ENI2Validation] public double? EmergencyTemperature_CEL { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? MarinePollutant { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public int? NumberOfPackages { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string PackageType { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? LimitedQuantities { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? ExceptedQuantities { get; set; } [ShowReport] + [ENI2Validation] public double? NetQuantity_KGM { get; set; } [ShowReport] + [ENI2Validation] public double? GrossQuantity_KGM { get; set; } [ShowReport] + [ENI2Validation] public double? Volume_MTQ { get; set; } [ShowReport] + [ENI2Validation] public bool? GeneralCargoIBC { get; set; } [ShowReport] [MaxLength(24)] + [ENI2Validation] public string ContainerNumber { get; set; } [ShowReport] [MaxLength(24)] + [ENI2Validation] public string VehicleLicenseNumber { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(24)] + [ENI2Validation] public string StowagePosition { get; set; } [MaxLength(5)] + [ENI2Validation] public string Bay { get; set; } [MaxLength(5)] + [ENI2Validation] public string Row { get; set; } [MaxLength(5)] + [ENI2Validation] public string Tier { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfLoading { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfDischarge { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string Remarks { get; set; } public List SubsidiaryRiskList { get { return this.subsidiaryRisksList; } } @@ -158,6 +191,7 @@ namespace bsmd.database /// /// Hilfsproperty, um subsidiary risks als kommaseparierte Liste anzuzeigen (ENI-2) /// + [ENI2Validation] public string SubsidiaryRiskText { get diff --git a/nsw/Source/bsmd.database/IMSBCPosition.cs b/nsw/Source/bsmd.database/IMSBCPosition.cs index cdaf8c05..b680f034 100644 --- a/nsw/Source/bsmd.database/IMSBCPosition.cs +++ b/nsw/Source/bsmd.database/IMSBCPosition.cs @@ -29,41 +29,50 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string BulkCargoShippingName { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? MHB { get; set; } [ShowReport] [MaxLength(4)] + [ENI2Validation] public string UNNumber { get; set; } [ShowReport] [MaxLength(10)] + [ENI2Validation] public string IMOClass { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? Quantity_KGM { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(24)] + [ENI2Validation] public string StowagePosition { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfLoading { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfDischarge { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string Remarks { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/INFO.cs b/nsw/Source/bsmd.database/INFO.cs index 3a5fd584..4ead54b6 100644 --- a/nsw/Source/bsmd.database/INFO.cs +++ b/nsw/Source/bsmd.database/INFO.cs @@ -25,46 +25,56 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? ShippingArea { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("INFO.RequestedPositionInPortOfCall")] [MaxLength(100)] + [ENI2Validation] public string RequestedPositionInPortOfCall { get; set; } [ShowReport] [LookupName("INFO.SpecialRequirementsOfShipAtBerth")] [MaxLength(255)] + [ENI2Validation] public string SpecialRequirementsOfShipAtBerth { get; set; } [ShowReport] [LookupName("INFO.ConstructionCharacteristicsOfShip")] [MaxLength(100)] + [ENI2Validation] public string ConstructionCharacteristicsOfShip { get; set; } [ShowReport] - [Validation(ValidationCode.NOT_NULL)] + [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? FumigatedBulkCargo { get; set; } [ShowReport] [LookupName("INFO.DeadWeightSummer_TNE")] + [ENI2Validation] public double? DeplacementSummerDraught_TNE { get; set; } [ShowReport] [LookupName("INFO.PortArea")] // [Validation(ValidationCode.NOT_NULL)] // ist bei NOK Transit leer [MaxLength(50)] + [ENI2Validation] public string PortArea { get; set; } [MaxLength(50)] + [ENI2Validation] public string BowThrusterPower { get; set; } [MaxLength(50)] + [ENI2Validation] public string SternThrusterPower { get; set; } [MaxLength(4)] [LookupName("INFO.PortFacility")] + [ENI2Validation] public string PortFacility { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/InfectedArea.cs b/nsw/Source/bsmd.database/InfectedArea.cs index 26127585..63a48202 100644 --- a/nsw/Source/bsmd.database/InfectedArea.cs +++ b/nsw/Source/bsmd.database/InfectedArea.cs @@ -28,9 +28,11 @@ namespace bsmd.database [ShowReport] [MaxLength(255)] + [ENI2Validation] public string InfectedAreaPort { get; set; } [ShowReport] + [ENI2Validation] public DateTime? InfectedAreaDate { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/LADG.cs b/nsw/Source/bsmd.database/LADG.cs index c1c4a69d..7af0f0e4 100644 --- a/nsw/Source/bsmd.database/LADG.cs +++ b/nsw/Source/bsmd.database/LADG.cs @@ -56,6 +56,7 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? CargoHandlingType { get; set; } /// @@ -76,28 +77,35 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.TWO_DIGIT)] [MaxLength(5)] + [ENI2Validation] public string CargoCodeNST { get; set; } [ShowReport] + [ENI2Validation] public int? CargoLACode { get; set; } [ShowReport] + [ENI2Validation] public int? CargoNumberOfItems { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? CargoGrossQuantity_TNE { get; set; } [MaxLength(5)] [Validation(ValidationCode.LOCODE)] + [ENI2Validation] public string PortOfLoading { get; set; } [MaxLength(5)] [Validation(ValidationCode.LOCODE)] + [ENI2Validation] public string PortOfDischarge { get; set; } [MaxLength(1)] [ShowReport] + [ENI2Validation] public string CargoCodeNST_3 { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs b/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs index 5de3d928..1c656250 100644 --- a/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs +++ b/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs @@ -28,35 +28,43 @@ namespace bsmd.database [ShowReport] [MaxLength(100)] + [ENI2Validation] public string PortFacilityPortName { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string PortFacilityPortCountry { get; set; } [ShowReport] [MaxLength(5)] + [ENI2Validation] public string PortFacilityPortLoCode { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? PortFacilityDateOfArrival { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? PortFacilityDateOfDeparture { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? PortFacilityShipSecurityLevel { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string PortFacilitySecurityMattersToReport { get; set; } [ShowReport] [Validation(ValidationCode.GISIS)] [MaxLength(4)] + [ENI2Validation] public string PortFacilityGISISCode { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/MARPOL_Annex_I_Position.cs b/nsw/Source/bsmd.database/MARPOL_Annex_I_Position.cs index ae2752ba..3639d98d 100644 --- a/nsw/Source/bsmd.database/MARPOL_Annex_I_Position.cs +++ b/nsw/Source/bsmd.database/MARPOL_Annex_I_Position.cs @@ -29,10 +29,12 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string Name { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? FlashpointInformation { get; set; } public string FlashpointInformationDisplay @@ -47,29 +49,35 @@ namespace bsmd.database [ShowReport] [MaxLength(10)] + [ENI2Validation] public string Flashpoint_CEL { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? Quantity_KGM { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(24)] + [ENI2Validation] public string StowagePosition { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfLoading { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] + [ENI2Validation] [MaxLength(5)] public string PortOfDischarge { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string Remarks { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/MDH.cs b/nsw/Source/bsmd.database/MDH.cs index a7b65fab..1d99b48e 100644 --- a/nsw/Source/bsmd.database/MDH.cs +++ b/nsw/Source/bsmd.database/MDH.cs @@ -42,121 +42,146 @@ namespace bsmd.database public List InfectedAreas { get { return this.infectedAreas; } } [ShowReport] - [Validation1(ValidationCode.NOT_NULL)] + [Validation1(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? MDHSimplification { get; set; } [ShowReport] [Validation1(ValidationCode.LOCODE_GER)] [MaxLength(5)] + [ENI2Validation] public string PortOfCallWhereCompleteMDHNotified { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.NonAccidentialDeathsDuringVoyage")] + [ENI2Validation] public bool? NonAccidentalDeathsDuringVoyage { get; set; } [ShowReport] [LookupName("MDH.NonAccidentialDeathsDuringVoyageCount")] + [ENI2Validation] public int? NonAccidentalDeathsDuringVoyageCount { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.SuspisionInfectiousNature")] + [ENI2Validation] public bool? SuspisionInfectiousNature { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.NumberOfIllPersonsHigherThanExpected")] + [ENI2Validation] public bool? NumberOfIllPersonsHigherThanExpected { get; set; } [ShowReport] [LookupName("MDH.NumberOfIllPersons")] + [ENI2Validation] public int? NumberOfIllPersons { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.SickPersonsOnBoard")] + [ENI2Validation] public bool? SickPersonsOnBoard { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.MedicalConsulted")] + [ENI2Validation] public bool? MedicalConsulted { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.AwareOfConditionsForFurtherInfections")] + [ENI2Validation] public bool? AwareOfFurtherInfections { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.SanitaryMeasuresApplied")] + [ENI2Validation] public bool? SanitaryMeasuresApplied { get; set; } [ShowReport] [LookupName("MDH.SanitaryMeasuresType_1")] // TODO: NSW 3.0: wird ein Array [MaxLength(100)] + [ENI2Validation] public string SanitaryMeasuresType { get; set; } [ShowReport] [LookupName("MDH.SanitaryMeasuresLocation_1")] [MaxLength(100)] + [ENI2Validation] public string SanitaryMeasuresLocation { get; set; } [ShowReport] [LookupName("MDH.SanitaryMeasuresDate_1")] + [ENI2Validation] public DateTime? SanitaryMeasuresDate { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.StowawaysDetected")] + [ENI2Validation] public bool? StowawaysDetected { get; set; } [ShowReport] [LookupName("MDH.StowawaysJoiningLocation_1")] // TODO: NSW 3.0: wird ein Array [MaxLength(100)] + [ENI2Validation] public string StowawaysJoiningLocation { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.SickAnimalOrPetOnBoard")] + [ENI2Validation] public bool? SickAnimalOrPetOnBoard { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.ValidSanitaryControlExemptionOrCertificateOnBoard")] + [ENI2Validation] public bool? ValidSanitaryControlExemptionOrCertificateOnBoard { get; set; } [ShowReport] [LookupName("MDH.PlaceOfIssue")] [MaxLength(100)] + [ENI2Validation] public string PlaceOfIssue { get; set; } [ShowReport] [LookupName("MDH.DateOfIssue")] + [ENI2Validation] public DateTime? DateOfIssue { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.SanitaryControlReinspectionRequired")] + [ENI2Validation] public bool? SanitaryControlReinspectionRequired { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("MDH.InfectedAreaVisited")] + [ENI2Validation] public bool? InfectedAreaVisited { get; set; } [ShowReport] [LookupName("MDH.InfectedAreaPort_1")] // TODO: NSW 3.0: wird ein Array [MaxLength(100)] + [ENI2Validation] public string InfectedAreaPort { get; set; } [ShowReport] [LookupName("MDH.InfectedAreaDate_1")] + [ENI2Validation] public DateTime? InfectedAreaDate { get; set; } /// /// Hilfsproperty, um eine kommaseparierte Liste von JoiningLocation (analog ANSW) im ENI-2 anzuzeigen, /// + [ENI2Validation] public string StowawaysJoiningLocationText { get diff --git a/nsw/Source/bsmd.database/MessageCore.cs b/nsw/Source/bsmd.database/MessageCore.cs index fd0f9d66..a59e3497 100644 --- a/nsw/Source/bsmd.database/MessageCore.cs +++ b/nsw/Source/bsmd.database/MessageCore.cs @@ -85,9 +85,11 @@ namespace bsmd.database #region Properties [MaxLength(25)] + [ENI2Validation] public string VisitId { get; set; } [MaxLength(25)] + [ENI2Validation] public string TransitId { get; set; } /// @@ -104,19 +106,25 @@ namespace bsmd.database } [MaxLength(7)] + [ENI2Validation] public string IMO { get; set; } [MaxLength(8)] + [ENI2Validation] public string ENI { get; set; } [MaxLength(5)] + [ENI2Validation] public string PoC { get; set; } [MaxLength(50)] + [ENI2Validation] public string Portname { get; set; } + [ENI2Validation] public DateTime? ETA { get; set; } + [ENI2Validation] public DateTime? ETAKielCanal { get; set; } public DateTime? ETADisplay @@ -129,12 +137,16 @@ namespace bsmd.database get { return this.IsTransit ? "NOK" : this.Portname; } } + [ENI2Validation] public bool IsTransit { get; set; } + [ENI2Validation] public bool Incoming { get; set; } // tbd: für HIS-NORD, mal sehen ob das so bleibt + [ENI2Validation] public BSMDStatus BSMDStatusInternal { get; set; } + [ENI2Validation] public Message.NSWProvider InitialHIS { get; set; } public Guid? HerbergFormGuid { get; set; } diff --git a/nsw/Source/bsmd.database/NAME.cs b/nsw/Source/bsmd.database/NAME.cs index 439d6ef6..c1a7a91a 100644 --- a/nsw/Source/bsmd.database/NAME.cs +++ b/nsw/Source/bsmd.database/NAME.cs @@ -28,6 +28,7 @@ namespace bsmd.database [Validation(ValidationCode.NOT_NULL)] [LookupName("NAME.NameOfMaster")] [MaxLength(100)] + [ENI2Validation] public string NameOfMaster { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/NOA_NOD.cs b/nsw/Source/bsmd.database/NOA_NOD.cs index 5049ee40..df6125f8 100644 --- a/nsw/Source/bsmd.database/NOA_NOD.cs +++ b/nsw/Source/bsmd.database/NOA_NOD.cs @@ -28,10 +28,12 @@ namespace bsmd.database [ShowReport] [Validation1(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? ETAToPortOfCall { get; set; } [ShowReport] [Validation1(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? ETDFromPortOfCall { get; set; } [Validation1(ValidationCode.NOT_NULL)] @@ -39,28 +41,35 @@ namespace bsmd.database [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? ETAToKielCanal { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? ETDFromKielCanal { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(5)] + [ENI2Validation] public string LastPort { get; set; } [ShowReport] + [ENI2Validation] public DateTime? ETDFromLastPort { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(5)] + [ENI2Validation] public string NextPort { get; set; } [ShowReport] + [ENI2Validation] public DateTime? ETAToNextPort { get; set; } + [ENI2Validation] public bool? IsAnchored { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/PAS.cs b/nsw/Source/bsmd.database/PAS.cs index 3b5db26d..e0787c07 100644 --- a/nsw/Source/bsmd.database/PAS.cs +++ b/nsw/Source/bsmd.database/PAS.cs @@ -28,22 +28,26 @@ namespace bsmd.database [ReportDisplayName("Last name")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string PassengerLastName { get; set; } [ShowReport] [ReportDisplayName("First name")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string PassengerFirstName { get; set; } [ShowReport] [ReportDisplayName("Place of birth")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string PassengerPlaceOfBirth { get; set; } [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? PassengerDateOfBirth { get; set; } [ShowReport] @@ -57,6 +61,7 @@ namespace bsmd.database } } + [ENI2Validation] public byte? PassengerGender { get; set; } [ShowReport] @@ -67,9 +72,11 @@ namespace bsmd.database [ReportDisplayName("Nationality")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(2)] + [ENI2Validation] public string PassengerNationality { get; set; } [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? PassengerIdentityDocumentType { get; set; } [ShowReport] @@ -80,32 +87,38 @@ namespace bsmd.database [ReportDisplayName("Identity document id")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string PassengerIdentityDocumentId { get; set; } [ShowReport] [ReportDisplayName("Visa number")] [MaxLength(100)] + [ENI2Validation] public string PassengerVisaNumber { get; set; } [ShowReport] [ReportDisplayName("Port of embarkation")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(5)] + [ENI2Validation] public string PassengerPortOfEmbarkation { get; set; } [ShowReport] [ReportDisplayName("Port of disembarkation")] [Validation(ValidationCode.NOT_NULL)] [MaxLength(5)] + [ENI2Validation] public string PassengerPortOfDisembarkation { get; set; } [ShowReport] [ReportDisplayName("In transit")] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? PassengerInTransit { get; set; } public string Identifier { get; set; } + [ENI2Validation] public bool IsDeparture { get; set; } diff --git a/nsw/Source/bsmd.database/POBA.cs b/nsw/Source/bsmd.database/POBA.cs index b23c5b16..e02429f0 100644 --- a/nsw/Source/bsmd.database/POBA.cs +++ b/nsw/Source/bsmd.database/POBA.cs @@ -26,22 +26,28 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.INT_GT_ZERO)] [LookupName("POBA.TotalPersonsOnBoardUponArrival")] + [ENI2Validation] public int? TotalPersonsOnBoardUponArrival { get; set; } [ShowReport] [Validation(ValidationCode.INT_GT_ZERO)] [LookupName("POBA.TotalCrewMembersOnBoardUponArrival")] + [ENI2Validation] public int? TotalCrewMembersOnBoardUponArrival { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("POBA.TotalPassengersOnBoardUponArrival")] + [ENI2Validation] public int? TotalPassengersOnBoardUponArrival { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("POBA.TotalStowawaysOnBoardUponArrival")] + [ENI2Validation] public int? TotalStowawaysOnBoardUponArrival { get; set; } #endregion + #region DatabaseEntity implementation + public override string Subtitle { get @@ -116,5 +122,8 @@ namespace bsmd.database reader.Close(); return result; } + + #endregion + } } diff --git a/nsw/Source/bsmd.database/POBD.cs b/nsw/Source/bsmd.database/POBD.cs index 769b8bd2..e52f24f7 100644 --- a/nsw/Source/bsmd.database/POBD.cs +++ b/nsw/Source/bsmd.database/POBD.cs @@ -26,18 +26,22 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.INT_GT_ZERO)] [LookupName("POBD.TotalPersonsOnBoardUponDeparture")] + [ENI2Validation] public int? TotalPersonsOnBoardUponDeparture { get; set; } [ShowReport] [Validation(ValidationCode.INT_GT_ZERO)] [LookupName("POBD.TotalCrewMembersOnBoardUponDeparture")] + [ENI2Validation] public int? TotalCrewMembersOnBoardUponDeparture { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("POBD.TotalPassengersOnBoardUponDeparture")] + [ENI2Validation] public int? TotalPassengersOnBoardUponDeparture { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("POBD.TotalStowawaysOnBoardUponDeparture")] + [ENI2Validation] public int? TotalStowawaysOnBoardUponDeparture { get; set; } public override string Subtitle @@ -50,6 +54,8 @@ namespace bsmd.database #endregion + #region Database Entity implementation + public override void PrepareSave(System.Data.IDbCommand cmd) { @@ -115,5 +121,8 @@ namespace bsmd.database reader.Close(); return result; } + + #endregion + } } diff --git a/nsw/Source/bsmd.database/PRE72H.cs b/nsw/Source/bsmd.database/PRE72H.cs index 64d9f216..9e84a726 100644 --- a/nsw/Source/bsmd.database/PRE72H.cs +++ b/nsw/Source/bsmd.database/PRE72H.cs @@ -27,48 +27,59 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("PRE72H.Tanker")] + [ENI2Validation] public bool? Tanker { get; set; } - [ShowReport] + [ShowReport] + [ENI2Validation] public byte? TankerHullConfiguration { get; set; } [ShowReport] + [ENI2Validation] public byte? ConditionCargoBallastTanks { get; set; } [ShowReport] [LookupName("PRE72H.NaturOfCargo")] [MaxLength(100)] + [ENI2Validation] public string NatureOfCargo { get; set; } [ShowReport] [LookupName("PRE72H.VolumeOfCargo_TNE")] + [ENI2Validation] public double? VolumeOfCargo { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [LookupName("PRE72H.PlannedOperations")] [MaxLength(100)] + [ENI2Validation] public string PlannedOperations { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] // nach Util verschoben [MaxLength(255)] + [ENI2Validation] public string PlannedWorks { get; set; } [ShowReport] [LookupName("PRE72H.DateOfLastExpandedInspection")] + [ENI2Validation] public DateTime? DateOfLastExpandedInspection { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] [LookupName("PRE72H.PlannedPeriodOfStay_HUR")] + [ENI2Validation] public double? PlannedPeriodOfStay_HUR { get; set; } [LookupName("PRE72H.IsDueToInspection")] + [ENI2Validation] public bool? IsDueToInspection { get; set; } [LookupName("PRE72H.PossibleAnchorage")] + [ENI2Validation] public bool? PossibleAnchorage { get; set; } public override string Subtitle diff --git a/nsw/Source/bsmd.database/PortArea.cs b/nsw/Source/bsmd.database/PortArea.cs index 94e59f3a..c7f8449c 100644 --- a/nsw/Source/bsmd.database/PortArea.cs +++ b/nsw/Source/bsmd.database/PortArea.cs @@ -15,18 +15,23 @@ namespace bsmd.database #region Properties [MaxLength(10)] + [ENI2Validation] public string Country { get; set; } [MaxLength(5)] + [ENI2Validation] public string Locode { get; set; } [MaxLength(255)] + [ENI2Validation] public string Port { get; set; } [MaxLength(10)] + [ENI2Validation] public string Code { get; set; } [MaxLength(255)] + [ENI2Validation] public string Name { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/PortOfCallLast30Days.cs b/nsw/Source/bsmd.database/PortOfCallLast30Days.cs index 8f1d02ff..1ece87b8 100644 --- a/nsw/Source/bsmd.database/PortOfCallLast30Days.cs +++ b/nsw/Source/bsmd.database/PortOfCallLast30Days.cs @@ -33,14 +33,17 @@ namespace bsmd.database [ShowReport] [Validation2(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfCallLast30DaysLocode { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? PortOfCallLast30DaysDateOfDeparture { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? PortOfCallLast30DaysCrewMembersJoined { get; set; } public string Identifier { get; set; } @@ -48,6 +51,7 @@ namespace bsmd.database /// /// Hilfsproperty, um eine kommaseparierte Liste von Crew (analog ANSW) im ENI-2 anzuzeigen, /// + [ENI2Validation] public string CrewMembersJoinedText { get diff --git a/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs b/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs index e18960ca..9a0e02a4 100644 --- a/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs +++ b/nsw/Source/bsmd.database/PortOfCallLast30DaysCrewJoinedShip.cs @@ -29,6 +29,7 @@ namespace bsmd.database [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string PortOfCallLast30DaysCrewJoinedShipName { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/PortOfItinerary.cs b/nsw/Source/bsmd.database/PortOfItinerary.cs index 40084b71..fd989b92 100644 --- a/nsw/Source/bsmd.database/PortOfItinerary.cs +++ b/nsw/Source/bsmd.database/PortOfItinerary.cs @@ -29,13 +29,16 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string PortOfItineraryName { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? PortOfItineraryETA { get; set; } [Validation(ValidationCode.LOCODE)] + [ENI2Validation] public string PortOfItineraryLocode { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/ReportingParty.cs b/nsw/Source/bsmd.database/ReportingParty.cs index 7f86eee1..3246f936 100644 --- a/nsw/Source/bsmd.database/ReportingParty.cs +++ b/nsw/Source/bsmd.database/ReportingParty.cs @@ -58,33 +58,43 @@ namespace bsmd.database #region NSW Reporting Party Properties [MaxLength(100)] + [ENI2Validation] public string Name { get; set; } [MaxLength(100)] + [ENI2Validation] public string StreetAndNumber { get; set; } [MaxLength(25)] + [ENI2Validation] public string PostalCode { get; set; } [MaxLength(100)] + [ENI2Validation] public string City { get; set; } [MaxLength(100)] + [ENI2Validation] public string Country { get; set; } [MaxLength(100)] + [ENI2Validation] public string LastName { get; set; } [MaxLength(100)] + [ENI2Validation] public string FirstName { get; set; } [MaxLength(100)] + [ENI2Validation] public string Phone { get; set; } [MaxLength(100)] + [ENI2Validation] public string Fax { get; set; } [MaxLength(100)] + [ENI2Validation] public string EMail { get; set; } public ReportingPartyTypeEnum? ReportingPartyType { get; set; } @@ -250,6 +260,8 @@ namespace bsmd.database #endregion + #region password related methods + public void SetPassword(string password) { using (SHA512 shaM = new SHA512Managed()) @@ -271,6 +283,8 @@ namespace bsmd.database } } + #endregion + #region public static methods public static LogonResult Login(string name, string password, out ReportingParty reportingParty) diff --git a/nsw/Source/bsmd.database/SEC.cs b/nsw/Source/bsmd.database/SEC.cs index b624c88a..3c9ac593 100644 --- a/nsw/Source/bsmd.database/SEC.cs +++ b/nsw/Source/bsmd.database/SEC.cs @@ -30,51 +30,61 @@ namespace bsmd.database [ShowReport] [Validation1(ValidationCode.NOT_NULL)] + [ENI2Validation] public bool? SECSimplification { get; set; } [ShowReport] [Validation1(ValidationCode.LOCODE_GER)] [MaxLength(5)] + [ENI2Validation] public string PortOfCallWhereCompleteSECNotified { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("SEC.CSOLastName")] [MaxLength(100)] + [ENI2Validation] public string CSOLastName { get; set; } [ShowReport] [LookupName("SEC.CSOFirstName")] [MaxLength(100)] + [ENI2Validation] public string CSOFirstName { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("SEC.CSOPhone")] [MaxLength(100)] + [ENI2Validation] public string CSOPhone { get; set; } [ShowReport] [LookupName("SEC.CSOFax")] [MaxLength(100)] + [ENI2Validation] public string CSOFax { get; set; } [ShowReport] [LookupName("SEC.CSOEMail")] [MaxLength(100)] + [ENI2Validation] public string CSOEMail { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("SEC.ValidISSCOnBoard")] + [ENI2Validation] public bool? ValidISSCOnBoard { get; set; } [ShowReport] [LookupName("SEC.ReasonsForNoValidISSC")] [MaxLength(255)] + [ENI2Validation] public string ReasonsForNoValidISSC { get; set; } - [Validation2(ValidationCode.NOT_NULL)] + [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? ISSCType { get; set; } [ShowReport] @@ -82,6 +92,7 @@ namespace bsmd.database public string ISSCTypeDisplay { get { return Util.GetISSCTypeDisplay(this.ISSCType); } } [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] // [LookupName("SEC.ISSCIssuerType")] // wird manuell gescannt und konvertiert public byte? ISSCIssuerType { get; set; } @@ -93,41 +104,51 @@ namespace bsmd.database [Validation2(ValidationCode.NOT_NULL)] [LookupName("SEC.ISSCIssuerName")] [MaxLength(100)] + [ENI2Validation] public string ISSCIssuerName { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("SEC.ISSCDateOfExpiration")] + [ENI2Validation] public DateTime? ISSCDateOfExpiration { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("SEC.ApprovedSecurityPlanOnBoard")] + [ENI2Validation] public bool? ApprovedSecurityPlanOnBoard { get; set; } [ShowReport] - [Validation(ValidationCode.NOT_NULL)] + [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? CurrentShipSecurityLevel { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string PortFacilityOfArrival { get; set; } [ShowReport] - [Validation2(ValidationCode.NOT_NULL)] + [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? GeneralDescriptionOfCargo { get; set; } - + [ENI2Validation] public bool? AreMatterToReport { get; set; } [LookupName("SEC.MatterToReport")] [MaxLength(1024)] + [ENI2Validation] public string MatterToReport { get; set; } - + + [ENI2Validation] public bool? KielCanalPassagePlanned { get; set; } + [ENI2Validation] public DateTime? KielCanalPassagePlannedIncomming { get; set; } + [ENI2Validation] public DateTime? KielCanalPassagePlannedOutgoing { get; set; } public List LastTenPortFacilitesCalled { get { return this.ltpfc; } } diff --git a/nsw/Source/bsmd.database/SERV.cs b/nsw/Source/bsmd.database/SERV.cs index b32b963a..3ba9b76c 100644 --- a/nsw/Source/bsmd.database/SERV.cs +++ b/nsw/Source/bsmd.database/SERV.cs @@ -26,18 +26,21 @@ namespace bsmd.database [ShowReport] [MaxLength(100)] + [ENI2Validation] public string ServiceName { get; set; } [ShowReport] [Validation1(ValidationCode.NOT_NULL)] [LookupName("SERV.ServiceBeneficiary")] [MaxLength(100)] + [ENI2Validation] public string ServiceBeneficiary { get; set; } [ShowReport] [Validation1(ValidationCode.NOT_NULL)] [LookupName("SERV.ServiceInvoiceRecipient")] [MaxLength(100)] + [ENI2Validation] public string ServiceInvoiceRecipient { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/STAT.cs b/nsw/Source/bsmd.database/STAT.cs index 86ba03cc..4c843a34 100644 --- a/nsw/Source/bsmd.database/STAT.cs +++ b/nsw/Source/bsmd.database/STAT.cs @@ -28,46 +28,55 @@ namespace bsmd.database [Validation(ValidationCode.NOT_NULL)] [LookupName("STAT.ShipName")] [MaxLength(100)] + [ENI2Validation] public string ShipName { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(50)] + [ENI2Validation] public string CallSign { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(50)] + [ENI2Validation] public string MMSINumber { get; set; } [ShowReport] [Validation(ValidationCode.FLAG_CODE)] [MaxLength(2)] + [ENI2Validation] public string Flag { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] [LookupName("STAT.LengthOverall_MTR")] + [ENI2Validation] public double? LengthOverall_MTR { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] [LookupName("STAT.Beam_MTR")] + [ENI2Validation] public double? Beam_MTR { get; set; } [ShowReport] [Validation(ValidationCode.DOUBLE_GT_ZERO)] [LookupName("STAT.GrossTonnage")] + [ENI2Validation] public int? GrossTonnage { get; set; } [ShowReport] [Validation(ValidationCode.LOCODE)] [MaxLength(5)] + [ENI2Validation] public string PortOfRegistry { get; set; } [ShowReport] [LookupName("STAT.InmarsatCallNumber")] [MaxLength(100)] + [ENI2Validation] public string InmarsatCallNumber { get; set; } /// @@ -75,6 +84,7 @@ namespace bsmd.database /// [Validation(ValidationCode.NOT_NULL)] [MaxLength(1)] + [ENI2Validation] public string TransportMode { get; set; } [ShowReport] @@ -95,36 +105,43 @@ namespace bsmd.database [Validation(ValidationCode.NOT_NULL)] [LookupName("STAT.ShipType")] [MaxLength(5)] + [ENI2Validation] public string ShipType { get; set; } [ShowReport] [LookupName("STAT.ISMCompanyName")] [MaxLength(100)] + [ENI2Validation] public string ISMCompanyName { get; set; } [ShowReport] [Validation(ValidationCode.STRING_EXACT_LEN, 7)] [MaxLength(10)] + [ENI2Validation] public string ISMCompanyId { get; set; } [ShowReport] [LookupName("STAT.ISMCompanyStreetAndNumber")] [MaxLength(100)] + [ENI2Validation] public string ISMCompanyStreetAndNumber { get; set; } [ShowReport] [LookupName("STAT.ISMCompanyPostalCode")] [MaxLength(24)] + [ENI2Validation] public string ISMCompanyPostalCode { get; set; } [ShowReport] [LookupName("STAT.ISMCompanyCity")] [MaxLength(100)] + [ENI2Validation] public string ISMCompanyCity { get; set; } [ShowReport] [LookupName("STAT.ISMCompanyCountry")] [MaxLength(100)] + [ENI2Validation] public string ISMCompanyCountry { get; set; } public override string Subtitle @@ -136,13 +153,16 @@ namespace bsmd.database } [LookupName("STAT.NetTonnage")] + [ENI2Validation] public double? NetTonnage { get; set; } [LookupName("STAT.RegistryDate")] + [ENI2Validation] public DateTime? RegistryDate { get; set; } [LookupName("STAT.CertificateOfRegistryNumber")] [MaxLength(35)] + [ENI2Validation] public string CertificateOfRegistryNumber { get; set; } public static Dictionary VesselTypeDict { get; set; } diff --git a/nsw/Source/bsmd.database/STO.cs b/nsw/Source/bsmd.database/STO.cs index f88f93bb..678e9973 100644 --- a/nsw/Source/bsmd.database/STO.cs +++ b/nsw/Source/bsmd.database/STO.cs @@ -36,21 +36,26 @@ namespace bsmd.database [LookupName("STO.Name")] [MaxLength(255)] + [ENI2Validation] public string Name { get; set; } [LookupName("STO.Quantity")] + [ENI2Validation] public int? Quantity { get; set; } [LookupName("STO.QuantityUnit")] [MaxLength(16)] + [ENI2Validation] public string QuantityUnit { get; set; } [LookupName("STO.LocationOnBoard")] [MaxLength(64)] + [ENI2Validation] public string LocationOnBoard { get; set; } [LookupName("STO.OfficialUse")] [MaxLength(16)] + [ENI2Validation] public string OfficialUse { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/SanitaryMeasuresDetail.cs b/nsw/Source/bsmd.database/SanitaryMeasuresDetail.cs index f321763f..f85b1244 100644 --- a/nsw/Source/bsmd.database/SanitaryMeasuresDetail.cs +++ b/nsw/Source/bsmd.database/SanitaryMeasuresDetail.cs @@ -29,13 +29,16 @@ namespace bsmd.database [ShowReport] [MaxLength(255)] + [ENI2Validation] public string SanitaryMeasuresType { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string SanitaryMeasuresLocation { get; set; } [ShowReport] + [ENI2Validation] public DateTime? SanitaryMeasuresDate { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.cs b/nsw/Source/bsmd.database/ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.cs index 5fb7a5c7..50cd4b34 100644 --- a/nsw/Source/bsmd.database/ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.cs +++ b/nsw/Source/bsmd.database/ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.cs @@ -28,33 +28,41 @@ namespace bsmd.database [ShowReport] [MaxLength(255)] + [ENI2Validation] public string ShipToShipActivityLocationName { get; set; } [ShowReport] [MaxLength(5)] + [ENI2Validation] public string ShipToShipActivityLocationLoCode { get; set; } [ShowReport] + [ENI2Validation] public int? ShipToShipActivityLocationCoordinatesLatitude { get; set; } [ShowReport] + [ENI2Validation] public int? ShipToShipActivityLocationCoordinatesLongitude { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? ShipToShipActivityDateFrom { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public DateTime? ShipToShipActivityDateTo { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [MaxLength(255)] + [ENI2Validation] public string ShipToShipActivityType { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string ShipToShipActivitySecurityMattersToReport { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/StowawaysJoiningLocation.cs b/nsw/Source/bsmd.database/StowawaysJoiningLocation.cs index 753dd5e4..2658e4ea 100644 --- a/nsw/Source/bsmd.database/StowawaysJoiningLocation.cs +++ b/nsw/Source/bsmd.database/StowawaysJoiningLocation.cs @@ -29,6 +29,7 @@ namespace bsmd.database [ShowReport] [MaxLength(255)] + [ENI2Validation] public string StowawayJoiningLocation { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/SubsidiaryRisks.cs b/nsw/Source/bsmd.database/SubsidiaryRisks.cs index 461e2890..0ebf7813 100644 --- a/nsw/Source/bsmd.database/SubsidiaryRisks.cs +++ b/nsw/Source/bsmd.database/SubsidiaryRisks.cs @@ -28,6 +28,7 @@ namespace bsmd.database [ShowReport] [MaxLength(11)] + [ENI2Validation] public string SubsidiaryRisk { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/TIEFA.cs b/nsw/Source/bsmd.database/TIEFA.cs index 022dcd83..7be152f4 100644 --- a/nsw/Source/bsmd.database/TIEFA.cs +++ b/nsw/Source/bsmd.database/TIEFA.cs @@ -26,6 +26,7 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.DRAUGHT_IMPLAUSIBLE)] [LookupName("TIEFA.DraughtUponArrival_DMT")] + [ENI2Validation] public double? DraughtUponArrival_DMT { get; set; } public override string Subtitle diff --git a/nsw/Source/bsmd.database/TIEFD.cs b/nsw/Source/bsmd.database/TIEFD.cs index 312d6da0..751ced61 100644 --- a/nsw/Source/bsmd.database/TIEFD.cs +++ b/nsw/Source/bsmd.database/TIEFD.cs @@ -23,9 +23,11 @@ namespace bsmd.database } #region Properties + [ShowReport] [Validation(ValidationCode.DRAUGHT_IMPLAUSIBLE)] [LookupName("TIEFD.DraughtUponDeparture_DMT")] + [ENI2Validation] public double? DraughtUponDeparture_DMT { get; set; } public override string Subtitle diff --git a/nsw/Source/bsmd.database/TOWA.cs b/nsw/Source/bsmd.database/TOWA.cs index 37de32ca..a2dff0b0 100644 --- a/nsw/Source/bsmd.database/TOWA.cs +++ b/nsw/Source/bsmd.database/TOWA.cs @@ -23,71 +23,88 @@ namespace bsmd.database } #region Properties + [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalName { get; set; } [ShowReport] [Validation(ValidationCode.FLAG_CODE)] [MaxLength(2)] + [ENI2Validation] public string TowageOnArrivalFlag { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorCompanyName { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorStreetNameAndNumber { get; set; } [ShowReport] [MaxLength(24)] + [ENI2Validation] public string TowageOnArrivalOperatorPostalCode { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorCity { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorCountry { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorPhone { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorFax { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalOperatorEmail { get; set; } [ShowReport] - [Validation(ValidationCode.INT_GT_ZERO)] + [Validation(ValidationCode.INT_GT_ZERO)] + [ENI2Validation] public int? TowageOnArrivalGrossTonnage { get; set; } [ShowReport] - [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? TowageOnArrivalLengthOverall_MTR { get; set; } [ShowReport] - [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? TowageOnArrivalBeam_MTR { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string TowageOnArrivalPurposeOfCall { get; set; } [ShowReport] - [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? TowageOnArrivalDraught_DMT { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string TowageOnArrivalRemarks { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/TOWD.cs b/nsw/Source/bsmd.database/TOWD.cs index c97ada62..9f048c73 100644 --- a/nsw/Source/bsmd.database/TOWD.cs +++ b/nsw/Source/bsmd.database/TOWD.cs @@ -27,56 +27,70 @@ namespace bsmd.database [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureName { get; set; } [ShowReport] [MaxLength(2)] + [ENI2Validation] public string TowageOnDepartureFlag { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorCompanyName { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorStreetNameAndNumber { get; set; } [ShowReport] [MaxLength(24)] + [ENI2Validation] public string TowageOnDepartureOperatorPostalCode { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorCity { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorCountry { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorPhone { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorFax { get; set; } [ShowReport] [MaxLength(100)] + [ENI2Validation] public string TowageOnDepartureOperatorEmail { get; set; } - [ShowReport] + [ShowReport] + [ENI2Validation] public double? TowageOnDepartureLengthOverall_MTR { get; set; } - [ShowReport] + [ShowReport] + [ENI2Validation] public double? TowageOnDepartureBeam_MTR { get; set; } [ShowReport] - [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [ENI2Validation] public double? TowageOnDepartureDraught_DMT { get; set; } [ShowReport] [MaxLength(255)] + [ENI2Validation] public string TowageOnDepartureRemarks { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/ValidationAttribute.cs b/nsw/Source/bsmd.database/ValidationAttribute.cs index c3b5f7c6..630efce5 100644 --- a/nsw/Source/bsmd.database/ValidationAttribute.cs +++ b/nsw/Source/bsmd.database/ValidationAttribute.cs @@ -70,6 +70,22 @@ namespace bsmd.database #endregion + #region ENI2 Validierung + + /// + /// Wenn ein Property damit dekoriert ist, steht es im Validierungs-Editor als Parameter zur Verfügung + /// + [AttributeUsage(AttributeTargets.Property)] + public class ENI2Validation : Attribute + { + public ENI2Validation() + { + + } + } + + #endregion + #region allg. ValidationAttribute (wird immer geprüft) [AttributeUsage(AttributeTargets.Property)] diff --git a/nsw/Source/bsmd.database/ValidationCondition.cs b/nsw/Source/bsmd.database/ValidationCondition.cs index 22e1cb40..c048cf26 100644 --- a/nsw/Source/bsmd.database/ValidationCondition.cs +++ b/nsw/Source/bsmd.database/ValidationCondition.cs @@ -10,6 +10,7 @@ using log4net; using System.Collections.ObjectModel; using System.Collections; using System.Windows.Data; +using System.ComponentModel; namespace bsmd.database { @@ -22,10 +23,18 @@ namespace bsmd.database public enum ConditionOperatorEnum { + [Description("==")] EQUAL, + [Description("!=")] NOT_EQUAL, + [Description(">")] GREATER, - LESS + [Description("<")] + LESS, + [Description("IS NULL")] + NULL, + [Description("IS NOT NULL")] + NOT_NULL } #region Properties @@ -113,6 +122,8 @@ namespace bsmd.database return result; } + #region Serialization + public static ConditionGroup LoadFromString(string serializedConditions) { if ((serializedConditions == null) || @@ -125,6 +136,7 @@ namespace bsmd.database { XmlSerializer serializer = new XmlSerializer(typeof(ConditionGroup)); ConditionGroup container = serializer.Deserialize(sr) as ConditionGroup; + container.CopyToObservable(); return container; } catch (Exception) @@ -144,6 +156,7 @@ namespace bsmd.database { Type theType = Type.GetType("bsmd.database.ConditionGroup, bsmd.database"); XmlSerializer serializer = new XmlSerializer(theType); + group.CopyToXML(); serializer.Serialize(sw, group); return sw.ToString(); } @@ -154,6 +167,8 @@ namespace bsmd.database } } + #endregion + /// /// evaluate logical group operator /// @@ -259,6 +274,11 @@ namespace bsmd.database #region class ConditionGroup + /// + /// Diese Klasse benötigt (blöderweise) für eine Sache 2 Collections: einmal für die XML Serialisierung und einmal + /// für die Hierarchie im WPF Treecontrol (ObservableCollection). Daher müssen die Inhalte beim Laden und Speichern hin und herkopiert + /// werden. Was für ein Scheiß. + /// [Serializable] public class ConditionGroup { @@ -274,28 +294,37 @@ namespace bsmd.database public ConditionGroup() { Conditions = new ObservableCollection(); SubGroups = new ObservableCollection(); + XMLConditions = new List(); + XMLSubGroups = new List(); } #region Properties - + + [XmlIgnore] public ObservableCollection Conditions { get; set; } + public List XMLConditions { get; set; } + public GroupOperatorEnum GroupOperator { get; set; } + [XmlIgnore] public ObservableCollection SubGroups { get; set; } + public List XMLSubGroups { get; set; } + + [XmlIgnore] public IList Children { get @@ -315,7 +344,7 @@ namespace bsmd.database #endregion - #region public recursive removal methods + #region public recursive methods public void Remove(ConditionGroup group) { @@ -341,12 +370,57 @@ namespace bsmd.database subGroup.RemoveCondition(condition); } + public void CopyToObservable() + { + this.SubGroups.Clear(); + foreach (ConditionGroup cg in this.XMLSubGroups) + this.SubGroups.Add(cg); + this.Conditions.Clear(); + foreach (ValidationCondition vc in this.XMLConditions) + this.Conditions.Add(vc); + foreach (ConditionGroup subGroup in this.XMLSubGroups) + subGroup.CopyToObservable(); + } + + public void CopyToXML() + { + this.XMLSubGroups.Clear(); + this.XMLSubGroups.AddRange(this.SubGroups); + this.XMLConditions.Clear(); + this.XMLConditions.AddRange(this.Conditions); + foreach (ConditionGroup subGroup in this.SubGroups) + subGroup.CopyToXML(); + + } + #endregion } #endregion + #region class ValidationField + + /// + /// Diese Klasse wird beim Bearbeiten im Regel-Editor verwendet (ENI-2) + /// + public class ValidationField + { + public string PropertyName { get; set; } + public string NotificationClassText { get; set; } + + public Message.NotificationClass NotificationClass { get; set; } + + public bool IsInListType { get; set; } + + public override string ToString() + { + return string.Format("{0}.{1}", NotificationClassText, PropertyName); + } + } + + #endregion + #region struct KeyValuePairS diff --git a/nsw/Source/bsmd.database/WAS.cs b/nsw/Source/bsmd.database/WAS.cs index e77dd314..e16248b9 100644 --- a/nsw/Source/bsmd.database/WAS.cs +++ b/nsw/Source/bsmd.database/WAS.cs @@ -36,29 +36,35 @@ namespace bsmd.database public static string[] DKWasteTypes { get { return dkWasteTypes; } } [ShowReport] + [ENI2Validation] public bool? WasteDisposalValidExemption { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("WAS.LastWasteDisposalPort")] [MaxLength(5)] + [ENI2Validation] public string LastWasteDisposalPort { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("WAS.ConfirmationOfCorrectness")] + [ENI2Validation] public bool? ConfirmationOfCorrectness { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] [LookupName("WAS.LastWasteDisposalDate")] + [ENI2Validation] public DateTime? LastWasteDisposalDate { get; set; } [ShowReport] [Validation2(ValidationCode.NOT_NULL)] + [ENI2Validation] public byte? WasteDisposalDelivery { get; set; } [LookupName("WAS.ConfirmationOfSufficiency")] + [ENI2Validation] public bool? ConfirmationOfSufficiency { get; set; } public List Waste { get { return this.waste; } } diff --git a/nsw/Source/bsmd.database/Waste.cs b/nsw/Source/bsmd.database/Waste.cs index c9272f80..4bd42faa 100644 --- a/nsw/Source/bsmd.database/Waste.cs +++ b/nsw/Source/bsmd.database/Waste.cs @@ -83,31 +83,39 @@ namespace bsmd.database } [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public int? WasteType { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] [MaxLength(100)] + [ENI2Validation] public string WasteDescription { get; set; } [ShowReport] [Validation(ValidationCode.NOT_NULL)] + [ENI2Validation] public double? WasteDisposalAmount_MTQ { get; set; } [ShowReport] + [ENI2Validation] public double? WasteCapacity_MTQ { get; set; } [ShowReport] + [ENI2Validation] public double? WasteAmountRetained_MTQ { get; set; } [ShowReport] [MaxLength(5)] + [ENI2Validation] public string WasteDisposalPort { get; set; } [ShowReport] + [ENI2Validation] public double? WasteAmountGeneratedTillNextPort_MTQ { get; set; } // "dänisches" Zusatzfeld + [ENI2Validation] public double? WasteDisposedAtLastPort_MTQ { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/WasteDisposalServiceProvider.cs b/nsw/Source/bsmd.database/WasteDisposalServiceProvider.cs index c4d65df4..5bdc79f6 100644 --- a/nsw/Source/bsmd.database/WasteDisposalServiceProvider.cs +++ b/nsw/Source/bsmd.database/WasteDisposalServiceProvider.cs @@ -28,9 +28,11 @@ namespace bsmd.database [ShowReport] [MaxLength(100)] + [ENI2Validation] public string WasteDisposalServiceProviderName { get; set; } [ShowReport] + [ENI2Validation] public byte? WasteDisposalDelivery { get; set; } public string Identifier { get; set; }