diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 3ea144ac..4f0c1b95 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Source/SendNSWMessageService/NSWSendService.cs b/nsw/Source/SendNSWMessageService/NSWSendService.cs index ff21b76a..6832d697 100644 --- a/nsw/Source/SendNSWMessageService/NSWSendService.cs +++ b/nsw/Source/SendNSWMessageService/NSWSendService.cs @@ -117,9 +117,22 @@ namespace SendNSWMessageService // nachträglich geändert werden. Ich denke hier muss in dashface ggf. der Status // wieder auf PREPARE gesetzt werden _log.Debug("Visit/Transit found, SENDING DATA messages"); + foreach (Message message in messages) { - // T + // Wenn das ein Transit ist, werden nicht erforderliche Meldeklassen übersprungen + if (core.IsTransit) + { + if ((message.MessageNotificationClass == Message.NotificationClass.BKRD) || + (message.MessageNotificationClass == Message.NotificationClass.PRE72H) || + (message.MessageNotificationClass == Message.NotificationClass.TIEFD) || + (message.MessageNotificationClass == Message.NotificationClass.NAME) || + (message.MessageNotificationClass == Message.NotificationClass.INFO) || + (message.MessageNotificationClass == Message.NotificationClass.POBD)) + continue; + } + + if (message.InternalStatus != Message.BSMDStatus.CONFIRMED) //(message.InternalStatus == Message.BSMDStatus.PREPARE) || //(message.InternalStatus == Message.BSMDStatus.TOSEND)) diff --git a/nsw/Source/bsmd.ReportGenerator/ANSWMessageComparer.cs b/nsw/Source/bsmd.ReportGenerator/ANSWMessageComparer.cs new file mode 100644 index 00000000..f6d96139 --- /dev/null +++ b/nsw/Source/bsmd.ReportGenerator/ANSWMessageComparer.cs @@ -0,0 +1,25 @@ +// +// Class: ANSWMessageComparer +// Current CLR: 4.0.30319.34209 +// System: Microsoft Visual Studio 10.0 +// Author: dani +// Created: 8/30/2015 6:36:43 PM +// +// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. + +using System; +using System.Collections.Generic; + +using bsmd.database; + +namespace bsmd.ReportGenerator +{ + public class ANSWMessageComparer : IComparer + { + public int Compare(Message x, Message y) + { + return Message.ANSWSortList.IndexOf(x.MessageNotificationClass).CompareTo(Message.ANSWSortList.IndexOf(y.MessageNotificationClass)); + } + } + +} diff --git a/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs b/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs index 5c9111a4..335bb032 100644 --- a/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs +++ b/nsw/Source/bsmd.ReportGenerator/BSMDDocument.cs @@ -425,8 +425,8 @@ namespace bsmd.ReportGenerator Row hRow = table.AddRow(); hRow.Cells[1].AddParagraph("handling type"); hRow.Cells[2].AddParagraph("Code (NST2007)"); - hRow.Cells[1].AddParagraph("Number of items"); - hRow.Cells[2].AddParagraph("Gross quantity (tons)"); + hRow.Cells[3].AddParagraph("Number of items"); + hRow.Cells[4].AddParagraph("Gross quantity (tons)"); for (int i = 0; i < message.Elements.Count; i++) { @@ -436,7 +436,7 @@ namespace bsmd.ReportGenerator row.Cells[1].AddParagraph(ladg.CargoHandlingType.HasValue ? (ladg.CargoHandlingType.Value == 0) ? "Load" : "Discharge" : ""); row.Cells[2].AddParagraph(ladg.CargoCodeNST ?? ""); row.Cells[3].AddParagraph(ladg.CargoNumberOfItems.HasValue ? ladg.CargoNumberOfItems.Value.ToString() : ""); - row.Cells[4].AddParagraph(ladg.CargoGrossQuantity_TNE.HasValue ? ladg.CargoGrossQuantity_TNE.Value.ToString() : ""); + row.Cells[4].AddParagraph(ladg.CargoGrossQuantity_TNE.HasValue ? ladg.CargoGrossQuantity_TNE.Value.ToString("N2") : ""); } } diff --git a/nsw/Source/bsmd.database/ATA.cs b/nsw/Source/bsmd.database/ATA.cs index 1e5e855c..79fad2a7 100644 --- a/nsw/Source/bsmd.database/ATA.cs +++ b/nsw/Source/bsmd.database/ATA.cs @@ -25,7 +25,7 @@ namespace bsmd.database #region Properties [ShowReport] - [Validation(ValidationCode.NOT_NULL)] + [Validation(ValidationCode.TIME_IMPLAUSIBLE)] public DateTime? ATAPortOfCall { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/ATD.cs b/nsw/Source/bsmd.database/ATD.cs index 173b40be..ada5247f 100644 --- a/nsw/Source/bsmd.database/ATD.cs +++ b/nsw/Source/bsmd.database/ATD.cs @@ -25,7 +25,7 @@ namespace bsmd.database #region Properties [ShowReport] - [Validation(ValidationCode.NOT_NULL)] + [Validation(ValidationCode.TIME_IMPLAUSIBLE)] public DateTime? ATDPortOfCall { get; set; } #endregion diff --git a/nsw/Source/bsmd.database/DatabaseEntity.cs b/nsw/Source/bsmd.database/DatabaseEntity.cs index 4b246278..08fa1143 100644 --- a/nsw/Source/bsmd.database/DatabaseEntity.cs +++ b/nsw/Source/bsmd.database/DatabaseEntity.cs @@ -132,8 +132,9 @@ namespace bsmd.database foreach (PropertyInfo property in props) { + bool isDouble = (property.PropertyType == typeof(Nullable)); object propValue = property.GetValue(this, null); - string value = (propValue == null) ? string.Empty : propValue.ToString(); + string value = (propValue == null) ? string.Empty : (isDouble ? ((double) propValue).ToString("N2") : propValue.ToString()); string displayName = property.Name; if(Attribute.IsDefined(property, typeof(ReportDisplayNameAttribute))) { ReportDisplayNameAttribute reportDisplayNameAttribute = Attribute.GetCustomAttribute(property, typeof(ReportDisplayNameAttribute)) diff --git a/nsw/Source/bsmd.database/HAZ.cs b/nsw/Source/bsmd.database/HAZ.cs index a7e76ebf..fba16957 100644 --- a/nsw/Source/bsmd.database/HAZ.cs +++ b/nsw/Source/bsmd.database/HAZ.cs @@ -31,9 +31,11 @@ namespace bsmd.database #region Properties [ShowReport] + [Validation(ValidationCode.NOT_NULL)] public bool? NoDPGOnBoardOnArrival { get; set; } [ShowReport] + [Validation(ValidationCode.NOT_NULL)] public bool? DPGManifestOnBoardOnArrival { get; set; } [ShowReport] diff --git a/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs b/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs index 6cf4bf3d..7cb1d32c 100644 --- a/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs +++ b/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs @@ -43,7 +43,7 @@ namespace bsmd.database [ShowReport] public string PortFacilitySecurityMattersToReport { get; set; } [ShowReport] - [Validation2(ValidationCode.NOT_NULL)] + [Validation2(ValidationCode.GISIS)] public string PortFacilityGISISCode { get; set; } public string Identifier { get; set; } @@ -138,11 +138,15 @@ namespace bsmd.database public override void Validate(List errors, List violations) { - bool locationOK = !this.PortFacilityPortLoCode.IsNullOrEmpty() || + bool locationOK = (!this.PortFacilityPortLoCode.IsNullOrEmpty()) || (!this.PortFacilityPortName.IsNullOrEmpty() && !this.PortFacilityPortCountry.IsNullOrEmpty()); - if(!locationOK) - RuleEngine.CreateViolation(ValidationCode.V703, "Either LoCode or Country + Name must be given", null); + if (!locationOK) + { + string val = string.Format("LoCode:{0} Port:{1} Country:{2}", this.PortFacilityPortLoCode ?? "", this.PortFacilityPortName ?? "", + this.PortFacilityPortCountry ?? ""); + RuleEngine.CreateViolation(ValidationCode.V703, "Either LoCode or Country + Name must be given", val); + } } #endregion diff --git a/nsw/Source/bsmd.database/POBD.cs b/nsw/Source/bsmd.database/POBD.cs index 4e21320d..f3dba2ec 100644 --- a/nsw/Source/bsmd.database/POBD.cs +++ b/nsw/Source/bsmd.database/POBD.cs @@ -40,7 +40,7 @@ namespace bsmd.database { get { - return "Persons on board on arrival"; + return "Persons on board on departure"; } } diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index 96e3c726..8be604f3 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("Informatikbüro Daniel Schick")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("2.3.0")] +[assembly: AssemblyInformationalVersion("2.4.0")] [assembly: AssemblyCopyright("Copyright © 2014-2015 Informatikbüro Daniel Schick. All rights reserved.")] [assembly: AssemblyTrademark("")] \ No newline at end of file diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs index 27000242..7e884bd2 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs @@ -4,6 +4,6 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.3.0.*")] +[assembly: AssemblyVersion("2.4.0.*")] // wenn das nicht auskommentiert wird erhalten wir eine Warnung // [assembly: AssemblyFileVersion("1.0.0.*")] diff --git a/nsw/Source/bsmd.database/RuleEngine.cs b/nsw/Source/bsmd.database/RuleEngine.cs index 76c47401..aee03601 100644 --- a/nsw/Source/bsmd.database/RuleEngine.cs +++ b/nsw/Source/bsmd.database/RuleEngine.cs @@ -236,6 +236,39 @@ namespace bsmd.database errors.Add(RuleEngine.CreateError(validationCode, property.Name, value)); } break; + case ValidationCode.STRING_IMOCLASS: + { + Regex rgx = new Regex(@"[1-9]{1}(\.[1-9]{1})?"); + if (!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value)); + } + break; + case ValidationCode.STRING_UNNUMBER: + { + Regex rgx = new Regex("[0-9]{4}"); + if (!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value)); + } + break; + case ValidationCode.DRAUGHT_IMPLAUSIBLE: + { + double dVal = 0; + if (!Double.TryParse(value, out dVal) || dVal <= 0) + errors.Add(RuleEngine.CreateError(ValidationCode.DOUBLE_GT_ZERO, property.Name, value)); + else + if ((dVal < 20) || (dVal > 150)) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value)); + } + break; + case ValidationCode.TIME_IMPLAUSIBLE: + { + DateTime aTime; + if (value.Length == 0) errors.Add(RuleEngine.CreateError(ValidationCode.NOT_NULL, property.Name, value)); + if (DateTime.TryParse(value, out aTime)) + { + if ((aTime - DateTime.UtcNow).Minutes > 30) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value)); + } + } + break; default: break; } diff --git a/nsw/Source/bsmd.database/SEC.cs b/nsw/Source/bsmd.database/SEC.cs index d5513557..972347bc 100644 --- a/nsw/Source/bsmd.database/SEC.cs +++ b/nsw/Source/bsmd.database/SEC.cs @@ -49,13 +49,19 @@ namespace bsmd.database [Validation2(ValidationCode.NOT_NULL)] public bool? ValidISSCOnBoard { get; set; } [ShowReport] - public string ReasonsForNoValidISSC { get; set; } - [ShowReport] + public string ReasonsForNoValidISSC { get; set; } [Validation2(ValidationCode.NOT_NULL)] public byte? ISSCType { get; set; } [ShowReport] + [ReportDisplayName("ISSC type")] + public string ISSCTypeDisplay { get { return Util.GetISSCTypeDisplay(this.ISSCType); } } + [Validation2(ValidationCode.NOT_NULL)] public byte? ISSCIssuerType { get; set; } + [ShowReport] + [ReportDisplayName("ISSC issuer type")] + public string ISSCIssuerTypeDisplay { get { return Util.GetISSCIssuerTypeDisplay(this.ISSCIssuerType); } } + [ShowReport] [Validation2(ValidationCode.NOT_NULL)] public string ISSCIssuerName { get; set; } diff --git a/nsw/Source/bsmd.database/TIEFA.cs b/nsw/Source/bsmd.database/TIEFA.cs index 57791fe4..33e144ee 100644 --- a/nsw/Source/bsmd.database/TIEFA.cs +++ b/nsw/Source/bsmd.database/TIEFA.cs @@ -24,7 +24,7 @@ namespace bsmd.database #region Properties [ShowReport] - [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [Validation(ValidationCode.DRAUGHT_IMPLAUSIBLE)] 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 3bc87368..d1c1e15e 100644 --- a/nsw/Source/bsmd.database/TIEFD.cs +++ b/nsw/Source/bsmd.database/TIEFD.cs @@ -24,14 +24,14 @@ namespace bsmd.database #region Properties [ShowReport] - [Validation(ValidationCode.DOUBLE_GT_ZERO)] + [Validation(ValidationCode.DRAUGHT_IMPLAUSIBLE)] public double? DraughtUponDeparture_DMT { get; set; } public override string Subtitle { get { - return "Draught at arrival notification"; + return "Draught at departure notification"; } } diff --git a/nsw/Source/bsmd.database/Util.cs b/nsw/Source/bsmd.database/Util.cs index da7366fb..80d7c1e2 100644 --- a/nsw/Source/bsmd.database/Util.cs +++ b/nsw/Source/bsmd.database/Util.cs @@ -64,5 +64,41 @@ namespace bsmd.database } } + public static string GetISSCTypeDisplay(byte? val) + { + if (val.HasValue) + { + switch(val) + { + case 0: return "FULL"; + case 1: return "INTERIM"; + default: + return "UNKNOWN"; + } + } + else + { + return "Unknown"; + } + } + + public static string GetISSCIssuerTypeDisplay(byte? val) + { + if (val.HasValue) + { + switch (val) + { + case 0: return "ADMINISTRATION"; + case 1: return "RSO"; + default: + return "UNKNOWN"; + } + } + else + { + return "Unknown"; + } + } + } } diff --git a/nsw/Source/bsmd.database/ValidationAttribute.cs b/nsw/Source/bsmd.database/ValidationAttribute.cs index 2e93da25..61d8161e 100644 --- a/nsw/Source/bsmd.database/ValidationAttribute.cs +++ b/nsw/Source/bsmd.database/ValidationAttribute.cs @@ -29,6 +29,10 @@ namespace bsmd.database TWO_DIGIT, STRING_MAXLEN, STRING_EXACT_LEN, + STRING_UNNUMBER = 23, + STRING_IMOCLASS = 24, + DRAUGHT_IMPLAUSIBLE = 25, + TIME_IMPLAUSIBLE = 26, E121 = 121, E122 = 122, E123 = 123, diff --git a/nsw/Source/bsmd.database/WAS.cs b/nsw/Source/bsmd.database/WAS.cs index 145b6e4c..da5332a0 100644 --- a/nsw/Source/bsmd.database/WAS.cs +++ b/nsw/Source/bsmd.database/WAS.cs @@ -201,5 +201,38 @@ namespace bsmd.database #endregion + #region public convenience method + + public List AddRemainingWasteTypes() + { + List result = new List(); + + for (byte wType = 1; wType <= 9; wType++ ) + { + bool wasteTypeFound = false; + foreach (Waste w in this.Waste) + { + if ((w.WasteType ?? 0) == wType) + wasteTypeFound = true; + } + if (!wasteTypeFound) + { + Waste newWaste = new Waste(); + newWaste.WasteType = wType; + newWaste.WasteAmountGeneratedTillNextPort_MTQ = 0; + newWaste.WasteAmountRetained_MTQ = 0; + newWaste.WasteCapacity_MTQ = 0; + newWaste.WasteDisposalAmount_MTQ = 0; + newWaste.Identifier = ""; + newWaste.WAS = this; + this.Waste.Add(newWaste); + result.Add(newWaste); + } + } + return result; + } + + #endregion + } } diff --git a/nsw/Source/bsmd.dbh/Request.cs b/nsw/Source/bsmd.dbh/Request.cs index a34938bc..453eff20 100644 --- a/nsw/Source/bsmd.dbh/Request.cs +++ b/nsw/Source/bsmd.dbh/Request.cs @@ -689,6 +689,7 @@ namespace bsmd.dbh rootMDH.Items[12] = mdh.SickAnimalOrPetOnBoard ?? false ? RootMDHSickAnimalOrPetOnBoard.Y : RootMDHSickAnimalOrPetOnBoard.N; rootMDH.ItemsElementName[13] = ItemsChoiceType2.ValidSanitaryControlExemptionOrCertificateOnBoard; rootMDH.Items[13] = mdh.ValidSanitaryControlExemptionOrCertificateOnBoard ?? false ? RootMDHValidSanitaryControlExemptionOrCertificateOnBoard.Y : RootMDHValidSanitaryControlExemptionOrCertificateOnBoard.N; + rootMDH.ItemsElementName[14] = ItemsChoiceType2.ValidSanitaryControlExemptionOrCertificate; RootMDHValidSanitaryControlExemptionOrCertificate cert = new RootMDHValidSanitaryControlExemptionOrCertificate(); rootMDH.Items[14] = cert; @@ -696,13 +697,19 @@ namespace bsmd.dbh cert.PlaceOfIssue = mdh.PlaceOfIssue; rootMDH.ItemsElementName[15] = ItemsChoiceType2.SanitaryControlReinspectionRequired; rootMDH.Items[15] = mdh.SanitaryControlReinspectionRequired ?? false ? RootMDHSanitaryControlReinspectionRequired.Y : RootMDHSanitaryControlReinspectionRequired.N; + rootMDH.ItemsElementName[16] = ItemsChoiceType2.InfectedAreaVisited; rootMDH.Items[16] = mdh.InfectedAreaVisited ?? false ? RootMDHInfectedAreaVisited.Y : RootMDHInfectedAreaVisited.N; - rootMDH.ItemsElementName[17] = ItemsChoiceType2.InfectedArea; - RootMDHInfectedArea infected = new RootMDHInfectedArea(); - rootMDH.Items[17] = infected; - infected.InfectedAreaPort = mdh.InfectedAreaPort; - if (mdh.InfectedAreaDate.HasValue) infected.InfectedAreaDate = mdh.InfectedAreaDate.Value; + + if (!mdh.InfectedAreaPort.IsNullOrEmpty() && mdh.InfectedAreaDate.HasValue) + { + rootMDH.ItemsElementName[17] = ItemsChoiceType2.InfectedArea; + RootMDHInfectedArea infected = new RootMDHInfectedArea(); + rootMDH.Items[17] = infected; + infected.InfectedAreaPort = mdh.InfectedAreaPort; + if (mdh.InfectedAreaDate.HasValue) infected.InfectedAreaDate = mdh.InfectedAreaDate.Value; + } + rootMDH.ItemsElementName[18] = ItemsChoiceType2.PortsOfCallLast30Days; RootMDHPortsOfCallLast30Days l30d = new RootMDHPortsOfCallLast30Days(); rootMDH.Items[18] = l30d; diff --git a/nsw/Source/bsmd.herberg.FormService/Util.cs b/nsw/Source/bsmd.herberg.FormService/Util.cs index 9c9baae1..44658bb9 100644 --- a/nsw/Source/bsmd.herberg.FormService/Util.cs +++ b/nsw/Source/bsmd.herberg.FormService/Util.cs @@ -738,6 +738,7 @@ namespace bsmd.herberg.FormService if (vDict.ContainsKey("ShippingArea")) info.ShippingArea = (byte) Enum.Parse(typeof(Enums.ShippingArea), vDict["ShippingArea"]); if (vDict.ContainsKey("RequestedPositionInPortOfCall")) info.RequestedPositionInPortOfCall = vDict["RequestedPositionInPortOfCall"]; if (vDict.ContainsKey("SpecialRequirementsOfShipAtBerth")) info.SpecialRequirementsOfShipAtBerth = vDict["SpecialRequirementsOfShipAtBerth"]; + else info.SpecialRequirementsOfShipAtBerth = aMessageCore.Customer.Name; if (vDict.ContainsKey("ConstructionCharacteristicsOfShip")) info.ConstructionCharacteristicsOfShip = vDict["ConstructionCharacteristicsOfShip"]; if (vDict.ContainsKey("FumigatedBulkCargo")) info.FumigatedBulkCargo = (byte)Enum.Parse(typeof(Enums.FumigatedBulkCargo), vDict["FumigatedBulkCargo"]); } @@ -767,6 +768,7 @@ namespace bsmd.herberg.FormService try { if (vDict.ContainsKey("Tanker")) pre72h.Tanker = vDict["Tanker"].Equals("Y"); + else pre72h.Tanker = false; // 18.10.15, vorläufig als default if (vDict.ContainsKey("TankerHullConfiguration")) pre72h.TankerHullConfiguration = (byte)Enum.Parse(typeof(Enums.TankerHullConfiguration), vDict["TankerHullConfiguration"]); if (vDict.ContainsKey("ConditionCargoBallastTanks")) pre72h.ConditionCargoBallastTanks = (byte)Enum.Parse(typeof(Enums.ConditionCargoBallastTanks), vDict["ConditionCargoBallastTanks"]); if (vDict.ContainsKey("NatureOfCargo")) pre72h.NatureOfCargo = vDict["NatureOfCargo"]; @@ -882,6 +884,18 @@ namespace bsmd.herberg.FormService foreach(int key in nDict.Keys) { Dictionary wDict = nDict[key]; Waste waste = was.GetSublistElementWithIdentifier(key.ToString()) as Waste; + if (waste == null) + { + foreach (Waste existingWaste in was.Waste) + { + if ((existingWaste.WasteType ?? 0) == (Enums.ParseWasteType(wDict["WasteType"]) ?? 0)) + { + waste = existingWaste; + break; + } + } + } + if (waste == null) { waste = new Waste(); @@ -902,6 +916,10 @@ namespace bsmd.herberg.FormService saveMessages.Add(waste); } + // fehlende Waste Meldungen als "leer" hinzufügen, der Identifier muss dann zur Kennzeichnung leer sein + // falls später vom Schiff als Update korrigierte Werte kommen. + saveMessages.AddRange(was.AddRemainingWasteTypes()); + if (vDict.ContainsKey("WasteDisposalServiceProviderName")) { WasteDisposalServiceProvider wdsp = null; @@ -1043,9 +1061,10 @@ namespace bsmd.herberg.FormService theMessage.MessageNotificationClass = Message.NotificationClass.VISIT; if (vDict.ContainsKey("PortNameOfCall")) aMessageCore.Portname = vDict["PortNameOfCall"]; if (vDict.ContainsKey("PortOfCall")) aMessageCore.PoC = "DE" + vDict["PortOfCall"]; - if (vDict.ContainsKey("TransitKielCanal")) aMessageCore.IsTransit = vDict["TransitKielCanal"].Equals("Y"); + // if (vDict.ContainsKey("TransitKielCanal")) aMessageCore.IsTransit = vDict["TransitKielCanal"].Equals("Y"); if (vDict.ContainsKey("ETAPortOfCall")) aMessageCore.ETA = Extensions.TryParseDateTime(vDict["ETAPortOfCall"]); if (vDict.ContainsKey("ETAKielCanal")) aMessageCore.ETAKielCanal = Extensions.TryParseDateTime(vDict["ETAKielCanal"]); + aMessageCore.IsTransit = false; } break; #endregion @@ -1055,6 +1074,7 @@ namespace bsmd.herberg.FormService { theMessage.MessageNotificationClass = Message.NotificationClass.TRANSIT; if (vDict.ContainsKey("ETAKielCanal")) aMessageCore.ETAKielCanal = Extensions.TryParseDateTime(vDict["ETAKielCanal"]); + aMessageCore.IsTransit = true; } break; #endregion diff --git a/nsw/Stand_2015_09_29.docx b/nsw/Stand_2015_09_29.docx new file mode 100644 index 00000000..f8c71e7c Binary files /dev/null and b/nsw/Stand_2015_09_29.docx differ diff --git a/server.txt b/server.txt index ca2c3646..be821115 100644 --- a/server.txt +++ b/server.txt @@ -17,7 +17,7 @@ Zugangsdaten NSW Server: https://bscw.dlz-it.de/bscw/bscw.cgi Benutzer: mippel PW: baffi1234! -PW: lkDDXd1321? +PW: 34SsjjJJ:: NSW Test E-Mail Account: