diff --git a/ENI2/DetailBaseControl.cs b/ENI2/DetailBaseControl.cs
index b1c00860..70ecc986 100644
--- a/ENI2/DetailBaseControl.cs
+++ b/ENI2/DetailBaseControl.cs
@@ -280,7 +280,9 @@ namespace ENI2
int minute = Int32.Parse(timevalText.Substring(10, 2));
thePicker.Value = new DateTime(year, month, day, hour, minute, 0);
}
- catch (Exception) { }
+ catch (Exception) {
+ thePicker.Value = null;
+ }
}
}
diff --git a/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs b/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
index b3bc701a..9f1f7d34 100644
--- a/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
@@ -768,20 +768,20 @@ namespace ENI2.DetailViewControls
}
CREW crew = new CREW();
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
- if (!reader.IsDBNull(0)) crew.CrewMemberLastName = reader.GetString(0);
+ if (!reader.IsDBNull(0)) crew.CrewMemberLastName = reader.GetString(0).Clean();
if (crew.CrewMemberLastName.Equals("Family Name") || (crew.CrewMemberLastName.Trim().Length == 0)) continue;
- if (!reader.IsDBNull(1)) crew.CrewMemberFirstName = reader.GetString(1);
+ if (!reader.IsDBNull(1)) crew.CrewMemberFirstName = reader.GetString(1).Clean();
if (!reader.IsDBNull(2)) crew.CrewMemberGender = GlobalStructures.ParseGender(reader.GetString(2));
- if (!reader.IsDBNull(3)) crew.CrewMemberDuty = reader.GetString(3);
+ if (!reader.IsDBNull(3)) crew.CrewMemberDuty = reader.GetString(3).Clean();
if (!reader.IsDBNull(4)) crew.CrewMemberNationality = reader.GetString(4).Substring(0, 2).ToUpper();
- if (!reader.IsDBNull(5)) crew.CrewMemberPlaceOfBirth = reader.GetString(5);
+ if (!reader.IsDBNull(5)) crew.CrewMemberPlaceOfBirth = reader.GetString(5).Clean();
if (!reader.IsDBNull(6)) crew.CrewMemberCountryOfBirth = reader.GetString(6).Substring(0, 2).ToUpper();
if (!reader.IsDBNull(7)) crew.CrewMemberDateOfBirth = reader.GetDateTime(7);
if (!reader.IsDBNull(8)) crew.CrewMemberIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(8));
- if (!reader.IsDBNull(9)) crew.CrewMemberIdentityDocumentId = this.getValueAsString(reader, 9);
+ if (!reader.IsDBNull(9)) crew.CrewMemberIdentityDocumentId = this.getValueAsString(reader, 9).Clean();
if (!reader.IsDBNull(10)) crew.CrewMemberIdentityDocumentIssuingState = reader.GetString(10).Substring(0, 2).ToUpper();
if (!reader.IsDBNull(11)) crew.CrewMemberIdentityDocumentExpiryDate = reader.GetDateTime(11);
- if (!reader.IsDBNull(12)) crew.CrewMemberVisaNumber = this.getValueAsString(reader, 12);
+ if (!reader.IsDBNull(12)) crew.CrewMemberVisaNumber = this.getValueAsString(reader, 12).Clean();
crew.MessageHeader = this._crewMessage;
crew.IsDirty = true;
@@ -925,28 +925,28 @@ namespace ENI2.DetailViewControls
PAS pas = new PAS();
if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
- if (!reader.IsDBNull(0)) pas.PassengerLastName = reader.GetValue(0).ToString();
+ if (!reader.IsDBNull(0)) pas.PassengerLastName = reader.GetValue(0).ToString().Clean();
if (pas.PassengerLastName.Equals("Family Name") || (pas.PassengerLastName.Trim().Length == 0)) continue;
- if (!reader.IsDBNull(1)) pas.PassengerFirstName = reader.GetValue(1).ToString();
+ if (!reader.IsDBNull(1)) pas.PassengerFirstName = reader.GetValue(1).ToString().Clean();
if (!reader.IsDBNull(2)) pas.PassengerGender = GlobalStructures.ParseGender(reader.GetString(2));
- if (!reader.IsDBNull(3)) pas.PassengerPortOfEmbarkation = reader.GetString(3);
+ if (!reader.IsDBNull(3)) pas.PassengerPortOfEmbarkation = reader.GetString(3).Clean();
if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfEmbarkation) == null)
pas.PassengerPortOfEmbarkation = null;
- if (!reader.IsDBNull(4)) pas.PassengerPortOfDisembarkation = reader.GetString(4);
+ if (!reader.IsDBNull(4)) pas.PassengerPortOfDisembarkation = reader.GetString(4).Clean();
if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfDisembarkation) == null)
pas.PassengerPortOfDisembarkation = null;
if (!reader.IsDBNull(5)) pas.PassengerInTransit = GlobalStructures.ReadBoolean(reader.GetString(5));
if (!reader.IsDBNull(6)) pas.PassengerNationality = reader.GetString(6).Substring(0, 2).ToUpper();
- if (!reader.IsDBNull(7)) pas.PassengerPlaceOfBirth = reader.GetString(7);
- if (!reader.IsDBNull(8)) pas.PassengerCountryOfBirth = reader.GetString(8).Substring(0, 2).ToUpper();
+ if (!reader.IsDBNull(7)) pas.PassengerPlaceOfBirth = reader.GetString(7).Clean();
+ if (!reader.IsDBNull(8)) pas.PassengerCountryOfBirth = reader.GetString(8).Substring(0, 2).ToUpper().Clean();
if (!reader.IsDBNull(9)) pas.PassengerDateOfBirth = reader.GetDateTime(9);
if (!reader.IsDBNull(10)) pas.PassengerIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(10));
- if (!reader.IsDBNull(11)) pas.PassengerIdentityDocumentId = this.getValueAsString(reader, 11);
+ if (!reader.IsDBNull(11)) pas.PassengerIdentityDocumentId = this.getValueAsString(reader, 11).Clean();
if (!reader.IsDBNull(12)) pas.PassengerIdentityDocumentIssuingState = reader.GetString(12).Substring(0, 2).ToUpper();
if (!reader.IsDBNull(13)) pas.PassengerIdentityDocumentExpiryDate = reader.GetDateTime(13);
- if (!reader.IsDBNull(14)) pas.PassengerVisaNumber = this.getValueAsString(reader, 14);
- if (!reader.IsDBNull(15)) pas.EmergencyCare = reader.GetString(15);
- if (!reader.IsDBNull(16)) pas.EmergencyContactNumber = this.getValueAsString(reader, 16);
+ if (!reader.IsDBNull(14)) pas.PassengerVisaNumber = this.getValueAsString(reader, 14).Clean();
+ if (!reader.IsDBNull(15)) pas.EmergencyCare = reader.GetString(15).Clean();
+ if (!reader.IsDBNull(16)) pas.EmergencyContactNumber = this.getValueAsString(reader, 16).Clean();
pas.MessageHeader = this._pasMessage;
pas.IsDirty = true;
diff --git a/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs b/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs
index 06fb8685..7b188990 100644
--- a/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs
@@ -220,6 +220,7 @@ namespace ENI2.DetailViewControls
copyMARPOL.CopyFromMARPOL(selectedMARPOL);
copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.MARPOLPositions, "MARPOL-");
target_haz.MARPOLPositions.Add(copyMARPOL);
+ target_haz.NoDPGOnBoardOnArrival = false;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
this.SetHAZGlobalFlags();
@@ -241,6 +242,7 @@ namespace ENI2.DetailViewControls
copyIMSBC.CopyFromIMSBC(selectedIMSBC);
copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMSBCPositions, "IMSBC-");
target_haz.IMSBCPositions.Add(copyIMSBC);
+ target_haz.NoDPGOnBoardOnArrival = false;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
this.SetHAZGlobalFlags();
@@ -262,6 +264,7 @@ namespace ENI2.DetailViewControls
copyIMDG.CopyFromIMDG(selectedIMDG);
copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMDGPositions, "IMDG-");
target_haz.IMDGPositions.Add(copyIMDG);
+ target_haz.NoDPGOnBoardOnArrival = false;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
this.SetHAZGlobalFlags();
@@ -283,6 +286,7 @@ namespace ENI2.DetailViewControls
copyIGC.CopyFromIGC(selectedIGC);
copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IGCPositions, "IGC-");
target_haz.IGCPositions.Add(copyIGC);
+ target_haz.NoDPGOnBoardOnArrival = false;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
this.SetHAZGlobalFlags();
@@ -306,6 +310,7 @@ namespace ENI2.DetailViewControls
copyIBC.CopyFromIBC(selectedIBC);
copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IBCPositions, "IBC-");
target_haz.IBCPositions.Add(copyIBC);
+ target_haz.NoDPGOnBoardOnArrival = false;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
this.SetHAZGlobalFlags();
diff --git a/ENI2/DetailViewControls/TowageDetailControl.xaml.cs b/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
index 6bfae9f9..2ad50d4f 100644
--- a/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
@@ -77,9 +77,9 @@ namespace ENI2.DetailViewControls
foreach (TOWD selectedTOWD in this.dataGridTowageOnDeparture.SelectedItems)
{
TOWA copyTOWA = new TOWA();
- copyTOWA.MessageHeader = _towdMessage;
+ copyTOWA.MessageHeader = _towaMessage;
copyTOWA.CopyFromTOWD(selectedTOWD);
- copyTOWA.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
+ copyTOWA.Identifier = TOWA.GetNewIdentifier(this._towaMessage.Elements);
this._towaMessage.Elements.Add(copyTOWA);
this.dataGridTowageOnArrival.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.TOWA);
diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj
index b093b377..b9363d13 100644
--- a/ENI2/ENI2.csproj
+++ b/ENI2/ENI2.csproj
@@ -36,8 +36,8 @@
5.4.0.0
true
publish.html
- 2
- 7.2.0.2
+ 0
+ 7.3.0.0
false
true
true
diff --git a/ENI2/Excel/ExcelReader.cs b/ENI2/Excel/ExcelReader.cs
index bd21b971..c5fe8066 100644
--- a/ENI2/Excel/ExcelReader.cs
+++ b/ENI2/Excel/ExcelReader.cs
@@ -18,6 +18,7 @@ using System.Linq;
using System.Runtime.InteropServices;
using ENI2.Locode;
using bsmd.database;
+using System.Text.RegularExpressions;
namespace ENI2.Excel
{
@@ -77,6 +78,10 @@ namespace ENI2.Excel
if (result != null)
{
result = result.Trim();
+ if(result.Length > 0)
+ {
+ result = result.Clean();
+ }
this.ImportValues[lookup] = result;
}
@@ -569,7 +574,7 @@ namespace ENI2.Excel
Worksheet workSheet = (Worksheet) _workBook.Worksheets[sheetName];
string result = workSheet.Range[range].Text.ToString();
if (!result.IsNullOrEmpty())
- result = result.Trim();
+ result = result.Trim().Clean();
return result;
}
catch(Exception e)
diff --git a/bsmd.database/Extensions.cs b/bsmd.database/Extensions.cs
index fe65bb6c..e1ba2a3a 100644
--- a/bsmd.database/Extensions.cs
+++ b/bsmd.database/Extensions.cs
@@ -15,6 +15,7 @@ using System.Text.RegularExpressions;
using log4net;
using System.Linq;
using System.Collections;
+using System.Text;
namespace bsmd.database
{
@@ -77,6 +78,17 @@ namespace bsmd.database
return false;
}
+ public static string Clean(this String str)
+ {
+ StringBuilder sb = new StringBuilder();
+ foreach (char c in str)
+ {
+ if ((c > '\u0020' && c < '\u007E') || c == ' ' || c == '\t' || c == '\n')
+ sb.Append(c);
+ }
+ return sb.ToString();
+ }
+
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
diff --git a/bsmd.database/Properties/AssemblyProductInfo.cs b/bsmd.database/Properties/AssemblyProductInfo.cs
index 35318206..ee133160 100644
--- a/bsmd.database/Properties/AssemblyProductInfo.cs
+++ b/bsmd.database/Properties/AssemblyProductInfo.cs
@@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")]
-[assembly: AssemblyInformationalVersion("7.2.0")]
+[assembly: AssemblyInformationalVersion("7.3.0")]
[assembly: AssemblyCopyright("Copyright © 2014-2022 schick Informatik")]
[assembly: AssemblyTrademark("")]
\ No newline at end of file
diff --git a/bsmd.database/Properties/AssemblyProjectInfo.cs b/bsmd.database/Properties/AssemblyProjectInfo.cs
index 8111450c..1d4cc244 100644
--- a/bsmd.database/Properties/AssemblyProjectInfo.cs
+++ b/bsmd.database/Properties/AssemblyProjectInfo.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("7.2.0.*")]
+[assembly: AssemblyVersion("7.3.0.*")]