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.*")]