diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 98ab49dd..cd26ef0c 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx b/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx index 51c83ba3..dc69da7f 100644 Binary files a/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx and b/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx differ diff --git a/nsw/Dänemark/NSW-DK-Excel-Departure.xltx b/nsw/Dänemark/NSW-DK-Excel-Departure.xltx index 53a5caa5..59e84157 100644 Binary files a/nsw/Dänemark/NSW-DK-Excel-Departure.xltx and b/nsw/Dänemark/NSW-DK-Excel-Departure.xltx differ diff --git a/nsw/Source/SendNSWMessageService/NSWSendService.cs b/nsw/Source/SendNSWMessageService/NSWSendService.cs index c8261298..6c17b655 100644 --- a/nsw/Source/SendNSWMessageService/NSWSendService.cs +++ b/nsw/Source/SendNSWMessageService/NSWSendService.cs @@ -138,6 +138,12 @@ namespace SendNSWMessageService // versendet, bis im ENI der Status wieder explizit zurückgesetzt wird (16.4.16) if (message.InternalStatus == Message.BSMDStatus.SUSPENDED) continue; + // "virtuelle" Messages nicht versenden (DK, EU) + if ((message.MessageNotificationClass == Message.NotificationClass.STO) || + (message.MessageNotificationClass == Message.NotificationClass.CREWD) || + (message.MessageNotificationClass == Message.NotificationClass.PASD)) + continue; + // Wenn das ein Transit ist, werden nicht erforderliche Meldeklassen übersprungen if (core.IsTransit) { diff --git a/nsw/Source/SendNSWMessageService/SendNSWMessageService.csproj b/nsw/Source/SendNSWMessageService/SendNSWMessageService.csproj index d8f4edba..7fd1f48c 100644 --- a/nsw/Source/SendNSWMessageService/SendNSWMessageService.csproj +++ b/nsw/Source/SendNSWMessageService/SendNSWMessageService.csproj @@ -38,8 +38,8 @@ ..\bsmdKey.snk - - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + + ..\packages\log4net.2.0.7\lib\net45-full\log4net.dll True diff --git a/nsw/Source/SendNSWMessageService/packages.config b/nsw/Source/SendNSWMessageService/packages.config deleted file mode 100644 index a51db168..00000000 --- a/nsw/Source/SendNSWMessageService/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/nsw/Source/bsmd.ExcelReadService.sln b/nsw/Source/bsmd.ExcelReadService.sln index 525cef08..02d58d4d 100644 --- a/nsw/Source/bsmd.ExcelReadService.sln +++ b/nsw/Source/bsmd.ExcelReadService.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 +# Visual Studio 14 +VisualStudioVersion = 14.0.25123.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.ExcelReadService", "bsmd.ExcelReadService\bsmd.ExcelReadService.csproj", "{9475E638-DCFB-49E8-BD4E-3513D106C82A}" EndProject diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs index 9d9f6950..3a9cb896 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs @@ -225,6 +225,36 @@ namespace bsmd.ExcelReadService return result; } + /// + /// read nationality field an returns 2 Char ISO code (optional lookup) and "confirms" + /// the field + /// + internal string ReadNationality(string lookup) + { + string val = this.ReadText(lookup); + if(val.IsNullOrEmpty()) { + this.Conf.ConfirmText(lookup, null, ReadState.FAIL); + } + + if(val.Length > 2) + { + string isoCode = LocodeDB.CountryCodeFromName(val); + if(isoCode != null) + { + this.Conf.ConfirmText(lookup, val, ReadState.OK); + val = isoCode; + } else + { + this.Conf.ConfirmText(lookup, val, ReadState.WARN); + } + } + + if (val.Length == 2) + this.Conf.ConfirmText(lookup, val, ReadState.OK); + + return val; + } + internal byte? ReadHullConfiguration(string lookup) { string val = this.ReadText(lookup); diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs index d8137368..778ad684 100644 --- a/nsw/Source/bsmd.ExcelReadService/Util.cs +++ b/nsw/Source/bsmd.ExcelReadService/Util.cs @@ -274,9 +274,10 @@ namespace bsmd.ExcelReadService { string bpolName = string.Format("BPOL.PortOfItineraryName_{0}", i); string bpolLocode = string.Format("BPOL.PortOfItineraryLoCode_{0}", i); - string bpolETA = string.Format("BPOL.PortOfItineraryETA_{0}", i); + string bpolETADate = string.Format("BPOL.PortOfItineraryETADate_{0}", i); + string bpolETATime = string.Format("BPOL.PortOfItineraryETATime_{0}", i); - string bpolNameValue = reader.ReadText(bpolName)?.Trim(); + string bpolNameValue = reader.ReadText(bpolName)?.Trim(); if (!bpolNameValue.IsNullOrEmpty()) { PortOfItinerary poi = bpol.GetSublistElementWithIdentifier(i.ToString()) as PortOfItinerary; @@ -294,8 +295,7 @@ namespace bsmd.ExcelReadService { reader.Conf.ConfirmText(bpolLocode, poi.PortOfItineraryLocode, ExcelReader.ReadState.WARN); } - poi.PortOfItineraryETA = reader.ReadDate(bpolETA); - + poi.PortOfItineraryETA = reader.ReadDateTime(bpolETADate, bpolETATime); } } } @@ -994,7 +994,9 @@ namespace bsmd.ExcelReadService { noa_nod.ETAToPortOfCall = messageCore.ETA; - reader.Conf.ConfirmDate("NOA_NOD.ETAToPortOfCall", noa_nod.ETAToPortOfCall, ExcelReader.ReadState.OK); + // Zeit muss zurückkonvertiert werden, da toUniversalTime() kodiert + if(noa_nod.ETAToPortOfCall.HasValue) + reader.Conf.ConfirmDate("NOA_NOD.ETAToPortOfCall", noa_nod.ETAToPortOfCall.Value.ToLocalTime(), ExcelReader.ReadState.OK); for (int i = 1; i <= noa_nod.NumberOfExcelRows; i++) { @@ -1074,11 +1076,17 @@ namespace bsmd.ExcelReadService if(messageCore.IsTransit) { noa_nod.ETDFromKielCanal = reader.ReadDateTime("NOA_NOD.ETDDateFromPortOfCall", "NOA_NOD.ETDTimeFromPortOfCall"); - reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", noa_nod.ETDFromKielCanal, ExcelReader.ReadState.OK); + if(noa_nod.ETDFromKielCanal.HasValue) + reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", noa_nod.ETDFromKielCanal.Value.ToLocalTime(), ExcelReader.ReadState.OK); + else + reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", null, ExcelReader.ReadState.FAIL); } else { noa_nod.ETDFromPortOfCall = reader.ReadDateTime("NOA_NOD.ETDDateFromPortOfCall", "NOA_NOD.ETDTimeFromPortOfCall"); - reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", noa_nod.ETDFromPortOfCall, ExcelReader.ReadState.OK); + if(noa_nod.ETDFromPortOfCall.HasValue) + reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", noa_nod.ETDFromPortOfCall.Value.ToLocalTime(), ExcelReader.ReadState.OK); + else + reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", null, ExcelReader.ReadState.FAIL); } noa_nod.ETDFromLastPort = reader.ReadDateTime("NOA_NOD.ETDDateFromLastPort", "NOA_NOD.ETDTimeFromLastPort"); @@ -1171,9 +1179,9 @@ namespace bsmd.ExcelReadService } waste.WasteType = (int?) reader.ReadNumber(wasteCode); - reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplayV4, ExcelReader.ReadState.OK); - - reader.Conf.ConfirmNumber(wastetype, waste.WasteType, ExcelReader.ReadState.OK); + reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplayV4, ExcelReader.ReadState.OK); + reader.Conf.ConfirmNumber(wasteCode, waste.WasteType, ExcelReader.ReadState.OK); + waste.WasteDescription = reader.ReadText(wasteDescription); if (waste.WasteDescription.IsNullOrEmpty()) { @@ -1823,12 +1831,7 @@ namespace bsmd.ExcelReadService crew.CrewMemberDuty = reader.ReadText(crewDuty); reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, ExcelReader.ReadState.OK); - crew.CrewMemberNationality = reader.ReadText(crewNationality); - if (!crew.CrewMemberNationality.IsNullOrEmpty() && (crew.CrewMemberNationality.Length > 2)) - reader.Conf.ConfirmText(crewNationality, crew.CrewMemberNationality, ExcelReader.ReadState.FAIL); - else - reader.Conf.ConfirmText(crewNationality, crew.CrewMemberNationality, ExcelReader.ReadState.OK); - + crew.CrewMemberNationality = reader.ReadNationality(crewNationality); crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth); reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK); @@ -1880,12 +1883,7 @@ namespace bsmd.ExcelReadService crew.CrewMemberDuty = reader.ReadText(crewDuty); reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, ExcelReader.ReadState.OK); - crew.CrewMemberNationality = reader.ReadText(crewNationality); - if (!crew.CrewMemberNationality.IsNullOrEmpty() && (crew.CrewMemberNationality.Length > 2)) - reader.Conf.ConfirmText(crewNationality, crew.CrewMemberNationality, ExcelReader.ReadState.FAIL); - else - reader.Conf.ConfirmText(crewNationality, crew.CrewMemberNationality, ExcelReader.ReadState.OK); - + crew.CrewMemberNationality = reader.ReadNationality(crewNationality); crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth); reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK); @@ -1941,11 +1939,7 @@ namespace bsmd.ExcelReadService pas.PassengerFirstName = reader.ReadText(pasFirstName); reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, ExcelReader.ReadState.OK); pas.PassengerGender = reader.ReadGender(pasGender); - pas.PassengerNationality = reader.ReadText(pasNationality); - if (!pas.PassengerNationality.IsNullOrEmpty() && pas.PassengerNationality.Length > 2) - reader.Conf.ConfirmText(pasNationality, pas.PassengerNationality, ExcelReader.ReadState.FAIL); - else - reader.Conf.ConfirmText(pasNationality, pas.PassengerNationality, ExcelReader.ReadState.OK); + pas.PassengerNationality = reader.ReadNationality(pasNationality); // TODO: Nicht klar ob hier LOCODEs kommen oder nicht pas.PassengerPortOfEmbarkation = reader.ReadTextNoWhitespace(pasEmbarkation); reader.Conf.ConfirmText(pasEmbarkation, pas.PassengerPortOfEmbarkation, ExcelReader.ReadState.OK); @@ -1999,11 +1993,7 @@ namespace bsmd.ExcelReadService pas.PassengerFirstName = reader.ReadText(pasFirstName); reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, ExcelReader.ReadState.OK); pas.PassengerGender = reader.ReadGender(pasGender); - pas.PassengerNationality = reader.ReadText(pasNationality); - if (!pas.PassengerNationality.IsNullOrEmpty() && pas.PassengerNationality.Length > 2) - reader.Conf.ConfirmText(pasNationality, pas.PassengerNationality, ExcelReader.ReadState.FAIL); - else - reader.Conf.ConfirmText(pasNationality, pas.PassengerNationality, ExcelReader.ReadState.OK); + pas.PassengerNationality = reader.ReadNationality(pasNationality); // TODO: Nicht klar ob hier LOCODEs kommen oder nicht pas.PassengerPortOfEmbarkation = reader.ReadTextNoWhitespace(pasEmbarkation); reader.Conf.ConfirmText(pasEmbarkation, pas.PassengerPortOfEmbarkation, ExcelReader.ReadState.OK); diff --git a/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj b/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj index c2168ac2..7fe100ad 100644 --- a/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj +++ b/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj @@ -34,8 +34,8 @@ 4 - - ..\packages\log4net.2.0.5\lib\net45-full\log4net.dll + + ..\packages\log4net.2.0.7\lib\net45-full\log4net.dll True @@ -48,8 +48,8 @@ - - ..\packages\System.Data.SQLite.Core.1.0.103\lib\net45\System.Data.SQLite.dll + + ..\packages\System.Data.SQLite.Core.1.0.104.0\lib\net45\System.Data.SQLite.dll True @@ -129,12 +129,12 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - +