From 9f6a342c2054eadcd51345de5004e2429737c720 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Fri, 14 Apr 2023 07:10:08 +0200 Subject: [PATCH] WasteDisposalDelivery entfernt --- ENI2/Excel/ExcelWriter.cs | 55 +++--- bsmd.ExcelReadService/Util.cs | 170 +++++++++--------- bsmd.dakosy/Request.cs | 4 +- bsmd.database/WAS.cs | 25 +-- bsmd.database/WasteDisposalServiceProvider.cs | 22 +-- bsmd.dbh/Request.cs | 70 ++++---- 6 files changed, 160 insertions(+), 186 deletions(-) diff --git a/ENI2/Excel/ExcelWriter.cs b/ENI2/Excel/ExcelWriter.cs index 817fe971..3fa6e767 100644 --- a/ENI2/Excel/ExcelWriter.cs +++ b/ENI2/Excel/ExcelWriter.cs @@ -82,10 +82,10 @@ namespace ENI2.Excel //case Message.NotificationClass.CREWD: // XXX-TODO // this.WriteCREW(message, false, isRefSheet); // break; - case Message.NotificationClass.HAZA: + case Message.NotificationClass.HAZA: this.WriteHAZ(message, true); break; - case Message.NotificationClass.HAZD: + case Message.NotificationClass.HAZD: this.WriteHAZ(message, false); break; case Message.NotificationClass.INFO: @@ -141,13 +141,13 @@ namespace ENI2.Excel if (message.Elements[0] is STAT stat) { this.WriteMessage(stat); - this.WriteSTAT(stat, isRefSheet); + this.WriteSTAT(stat, isRefSheet); } break; case Message.NotificationClass.STO: this.WriteSTO(message); break; - case Message.NotificationClass.TIEFA: + case Message.NotificationClass.TIEFA: if (message.Elements[0] is TIEFA tiefa) { // Ref-Sheet: dm, neues Formblatt: m @@ -180,7 +180,7 @@ namespace ENI2.Excel _log.InfoFormat("skip writing message class {0}", message.MessageNotificationClassDisplay); break; } - + } catch (Exception ex) { @@ -306,7 +306,7 @@ namespace ENI2.Excel else { if (ReportDocument.cargoCodesNST.TryGetValue(ladg.CargoCodeNST, out string cargoCode)) - WriteText(lnType, cargoCode.Substring(3)); // description w/o code + WriteText(lnType, cargoCode.Substring(3)); // description w/o code } WriteText(lnZusatz, ladg.CargoCodeNST_3); WriteNumber(lnCNOI, ladg.CargoNumberOfItems); @@ -423,10 +423,10 @@ namespace ENI2.Excel if (isRefSheet) { WriteText(crewIssuingState, crew.CrewMemberIdentityDocumentIssuingState); - } + } else { - if(!crew.CrewMemberIdentityDocumentIssuingState.IsNullOrEmpty() && !crew.CrewMemberIdentityDocumentIssuingState.Equals("XX")) + if(!crew.CrewMemberIdentityDocumentIssuingState.IsNullOrEmpty() && !crew.CrewMemberIdentityDocumentIssuingState.Equals("XX")) WriteText(crewIssuingState, crew.CrewMemberIdentityDocumentIssuingState); } if(isRefSheet) @@ -438,7 +438,7 @@ namespace ENI2.Excel if(crew.CrewMemberIdentityDocumentExpiryDate != new DateTime(2100, 12, 31)) WriteDate(crewExpiry, crew.CrewMemberIdentityDocumentExpiryDate); } - + WriteText(crewCountry, crew.CrewMemberCountryOfBirth); if (isArrival) WriteText(effects, crew.Effects); @@ -564,7 +564,7 @@ namespace ENI2.Excel WriteNumber(ibc_quantity, ibcPosition.Quantity_KGM.Value); WriteText(ibc_stowagePosition, ibcPosition.StowagePosition); WriteText(ibc_portOfLoading, ibcPosition.PortOfLoading); - WriteText(ibc_portOfDischarge, ibcPosition.PortOfDischarge); + WriteText(ibc_portOfDischarge, ibcPosition.PortOfDischarge); WriteText(ibc_hazards, ibcPosition.HazardsDisplay); WriteBoolean(ibc_specref, ibcPosition.SpecRef15_19 ?? false); WriteText(ibc_remarks, ibcPosition.Remarks); @@ -886,7 +886,7 @@ namespace ENI2.Excel WriteText("SEC.CurrentShipSecurityLevel", sec.CurrentShipSecurityLevel.Value.ToString()); WriteText("SEC.ISSCIssuerType", sec.ISSCIssuerTypeDisplay); - + if(sec.GeneralDescriptionOfCargo.HasValue) { switch(sec.GeneralDescriptionOfCargo.Value) @@ -1041,7 +1041,7 @@ namespace ENI2.Excel if(CREW.NationalityDict.TryGetValue(towa.TowageOnArrivalFlag, out string country)) WriteText(tFlag, country.Substring(3)); } - + WriteText(tPoC, towa.TowageOnArrivalPurposeOfCall); if (towa.TowageOnArrivalDraught_DMT.HasValue) WriteNumber(tDraft, towa.TowageOnArrivalDraught_DMT.Value); @@ -1091,7 +1091,7 @@ namespace ENI2.Excel WriteNumber(tBeam, towd.TowageOnDepartureBeam_MTR.Value); WriteText(tOp, towd.TowageOnDepartureOperatorCompanyName); // WriteText(tPoc, towd.Tow) - } + } } #endregion @@ -1103,17 +1103,6 @@ namespace ENI2.Excel if (wasMessage.Elements.Count == 0) return; WAS was = wasMessage.Elements[0] as WAS; - if (was.WasteDisposalDelivery.HasValue) // TODO: CH schreibt für DK erforderlich -> nachfragen - { - switch (was.WasteDisposalDelivery) - { - case 0: WriteText("WAS.WasteDisposalDelivery", "ALL"); break; - case 1: WriteText("WAS.WasteDisposalDelivery", "SOME"); break; - case 2: WriteText("WAS.WasteDisposalDelivery", "NONE"); break; - default: break; - } - } - WriteText("WAS.LastWasteDisposalPort", isRefSheet ? was.LastWasteDisposalPort : Locode.LocodeDB.LocationNameFromLocode(was.LastWasteDisposalPort)); WriteText("WAS.WasteDisposalServiceProviderName", was.WasteDisposalServiceProviderText); WriteText("WAS.NextWasteDisposalPort", isRefSheet? was.NextWasteDisposalPort : Locode.LocodeDB.LocationNameFromLocode(was.NextWasteDisposalPort)); @@ -1124,7 +1113,7 @@ namespace ENI2.Excel { int? wasteType = (int?)ReadNumber(string.Format("WAS.WasteCode_{0}", i + 1)); if (!wasteType.HasValue) continue; - + string wasteDescription = string.Format("WAS.WasteDescription_{0}", i + 1); string wasteAmount = string.Format("WAS.WasteDisposalAmount_MTQ_{0}", i + 1); string wasteCapacity = string.Format("WAS.WasteCapacity_MTQ_{0}", i + 1); @@ -1133,7 +1122,7 @@ namespace ENI2.Excel string amountGen = string.Format("WAS.WasteAmountGeneratedTillNextPort_MTQ_{0}", i + 1); Waste waste = was.GetWasteForType(wasteType.Value); - + WriteText(wasteDescription, waste.WasteDescription); if (waste.WasteDisposalAmount_MTQ.HasValue) WriteNumber(wasteAmount, waste.WasteDisposalAmount_MTQ.Value); @@ -1143,7 +1132,7 @@ namespace ENI2.Excel WriteNumber(wasteRetained, waste.WasteAmountRetained_MTQ.Value); WriteText(wastePort, isRefSheet ? waste.WasteDisposalPort : Locode.LocodeDB.LocationNameFromLocode(waste.WasteDisposalPort)); if (waste.WasteAmountGeneratedTillNextPort_MTQ.HasValue) - WriteNumber(amountGen, waste.WasteAmountGeneratedTillNextPort_MTQ.Value); + WriteNumber(amountGen, waste.WasteAmountGeneratedTillNextPort_MTQ.Value); } } @@ -1216,8 +1205,8 @@ namespace ENI2.Excel WriteText("INFO.PortArea", info.PortArea); } else - { - WriteText("INFO.PortArea", LocalizedLookup.GetPortAreaFromCode(info.PortArea)); + { + WriteText("INFO.PortArea", LocalizedLookup.GetPortAreaFromCode(info.PortArea)); } } } @@ -1244,7 +1233,7 @@ namespace ENI2.Excel if(isRefSheet) { WriteText("STAT.ShipType", stat.ShipType); - } + } else { if (LocalizedLookup.getVesselTypes().TryGetValue(stat.ShipType, out string shipType)) @@ -1345,7 +1334,7 @@ namespace ENI2.Excel } catch(Exception) { - System.Diagnostics.Trace.WriteLine(string.Format("Error writing {0} to excel, field missing", lookupName)); + System.Diagnostics.Trace.WriteLine(string.Format("Error writing {0} to excel, field missing", lookupName)); } return result; @@ -1370,10 +1359,10 @@ namespace ENI2.Excel if (result) { if(v != null) - { + { _nameDict[lookupName].RefersToRange.Value = ((DateTime) v).ToLocalTime().ToOADate(); } - + } return result; diff --git a/bsmd.ExcelReadService/Util.cs b/bsmd.ExcelReadService/Util.cs index fa129d83..ad843d48 100644 --- a/bsmd.ExcelReadService/Util.cs +++ b/bsmd.ExcelReadService/Util.cs @@ -24,7 +24,7 @@ namespace bsmd.ExcelReadService { messageCore = Util.LookupMessageCore(reader, out readMessage); - if (messageCore == null) return false; // cannot work with this sheet or create one + if (messageCore == null) return false; // cannot work with this sheet or create one // load messages if already present List messages = DBManager.Instance.GetMessagesForCore(messageCore, DBManager.MessageLoad.ALL); @@ -113,7 +113,7 @@ namespace bsmd.ExcelReadService ScanCREW(messages, messageCore, reader); ScanPAS(messages, messageCore, reader); - + ScanBPOL(messages, messageCore, reader); ScanTOWA(messages, messageCore, reader); @@ -139,7 +139,7 @@ namespace bsmd.ExcelReadService if ((message.MessageNotificationClass == Message.NotificationClass.CREWD) || (message.MessageNotificationClass == Message.NotificationClass.CREWD) || (message.MessageNotificationClass == Message.NotificationClass.STO)) message.InternalStatus = Message.BSMDStatus.PREPARE; - else + else message.InternalStatus = Message.BSMDStatus.EXCEL; message.UnsentMessageWarningShown = false; DBManager.Instance.Save(message); @@ -147,7 +147,7 @@ namespace bsmd.ExcelReadService } return true; - } + } #region ATA @@ -170,7 +170,7 @@ namespace bsmd.ExcelReadService if (!ata.ATAPortOfCall.HasValue && ataMessage.IsNew) messages.Remove(ataMessage); - } + } #endregion @@ -266,7 +266,7 @@ namespace bsmd.ExcelReadService private static void ScanBPOL(List messages, MessageCore messageCore, ExcelReader reader) { - // Die Verarbeitung dieser Nachricht aktuell nur für + // Die Verarbeitung dieser Nachricht aktuell nur für Message bpolMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.BPOL); if (bpolMessage.Elements.Count == 0) { @@ -311,8 +311,8 @@ namespace bsmd.ExcelReadService poi.PortOfItineraryName = bpolNameValue; reader.Conf.ConfirmText(bpolName, bpolNameValue, ExcelReader.ReadState.OK); - poi.PortOfItineraryLocode = bpolLocodeValue; - // falls nur Locode angegeben wurde, Portname aus Locode ermitteln + poi.PortOfItineraryLocode = bpolLocodeValue; + // falls nur Locode angegeben wurde, Portname aus Locode ermitteln if(poi.PortOfItineraryName.IsNullOrEmpty() && !poi.PortOfItineraryLocode.IsNullOrEmpty() && (poi.PortOfItineraryLocode.Length == 5)) { poi.PortOfItineraryName = LocodeDB.PortNameFromLocode(poi.PortOfItineraryLocode); @@ -342,8 +342,8 @@ namespace bsmd.ExcelReadService if (((poba.TotalPersonsOnBoardUponArrival ?? 0) == 0) && poba.IsNew) messages.Remove(pobaMessage); - reader.Conf.ConfirmNumber("POBA.TotalCrewMembersOnBoardUponArrival_DK", poba.TotalCrewMembersOnBoardUponArrival, - (poba.TotalCrewMembersOnBoardUponArrival.HasValue && poba.TotalCrewMembersOnBoardUponArrival > 0) ? + reader.Conf.ConfirmNumber("POBA.TotalCrewMembersOnBoardUponArrival_DK", poba.TotalCrewMembersOnBoardUponArrival, + (poba.TotalCrewMembersOnBoardUponArrival.HasValue && poba.TotalCrewMembersOnBoardUponArrival > 0) ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); reader.Conf.ConfirmNumber("POBA.TotalPassengersOnBoardUponArrival_DK", poba.TotalPassengersOnBoardUponArrival, @@ -406,7 +406,7 @@ namespace bsmd.ExcelReadService if(shipClass.IsNullOrEmpty()) { reader.Conf.ConfirmText("HAZA.INFShipClass", null, ExcelReader.ReadState.FAIL); - } + } else { if (shipClass.Contains('1')) haza.INFShipClass = 0; @@ -416,7 +416,7 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText("HAZA.INFShipClass", shipClass, haza.INFShipClass.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); } - // IMDG + // IMDG #region IMDG for (int i = 1; i <= 10; i++) @@ -707,13 +707,13 @@ namespace bsmd.ExcelReadService } #endregion - + if(haza.HasPositions) // Christin 22.3.17: Felder bei Positionen immer fest ausfüllen { haza.NoDPGOnBoardOnArrival = false; // haza.DPGManifestOnBoardOnArrival = true; } - + } @@ -755,7 +755,7 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText("HAZD.INFShipClass", shipClass, hazd.INFShipClass.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); } - // IMDG + // IMDG #region IMDG for (int i = 1; i <= 10; i++) @@ -1045,7 +1045,7 @@ namespace bsmd.ExcelReadService } #endregion - + if (hazd.HasPositions) // Christin 22.3.17: Felder bei Positionen immer fest ausfüllen { @@ -1053,7 +1053,7 @@ namespace bsmd.ExcelReadService // hazd.DPGManifestOnBoardOnArrival = true; } - + } @@ -1099,7 +1099,7 @@ namespace bsmd.ExcelReadService stat.PortOfRegistry = reader.ReadLoCode("STAT.PortOfRegistry"); stat.Flag = reader.ReadNationality("STAT.Flag"); - stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber"); + stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber"); reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, (stat.MMSINumber.IsNullOrEmpty() || (stat.MMSINumber.Length != 9)) ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); stat.CallSign = reader.ReadTextNoWhitespace("STAT.CallSign"); @@ -1134,7 +1134,7 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText("ShipMail", messageCore.HerbergEmailContactReportingVessel, messageCore.HerbergEmailContactReportingVessel.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); // wird nicht wieder entfernt (core ist auch da!) - + } #endregion @@ -1195,7 +1195,7 @@ namespace bsmd.ExcelReadService callPurpose.CallPurposeDescription = callPurposeDescription; ExcelReader.ReadState aReadState = ExcelReader.ReadState.OK; if (callPurposeDescription.IsNullOrEmpty()) aReadState = ExcelReader.ReadState.WARN; - else if (callPurposeDescription.Length > 90) aReadState = ExcelReader.ReadState.FAIL; + else if (callPurposeDescription.Length > 90) aReadState = ExcelReader.ReadState.FAIL; reader.Conf.ConfirmText(callPurposeDescriptionKey, callPurposeDescription, aReadState); if (i == 1) reader.Conf.ConfirmText("NOA_NOD.CallPuposeDescription_1_DK", callPurposeDescription, callPurposeDescription.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK); @@ -1203,7 +1203,7 @@ namespace bsmd.ExcelReadService } } - string lastPort = reader.ReadText("NOA_NOD.LastPort")?.Trim().ToUpper(); + string lastPort = reader.ReadText("NOA_NOD.LastPort")?.Trim().ToUpper(); if (lastPort != null) { @@ -1226,7 +1226,7 @@ namespace bsmd.ExcelReadService string nextPort = reader.ReadText("NOA_NOD.NextPort")?.Trim().ToUpper(); bool isValidSSNPort = false; if (!nextPort.IsNullOrEmpty()) - { + { if (nextPort.Length > 5) nextPort = nextPort.Substring(0, 5); //trunc else @@ -1255,7 +1255,7 @@ namespace bsmd.ExcelReadService else reader.Conf.ConfirmDate("NOA_NOD.ETDFromPortOfCall", null, ExcelReader.ReadState.FAIL); } - + noa_nod.ETDFromLastPort = reader.ReadDateTime("NOA_NOD.ETDDateFromLastPort", "NOA_NOD.ETDTimeFromLastPort"); noa_nod.ETAToNextPort = reader.ReadDateTime("NOA_NOD.ETADateToNextPort", "NOA_NOD.ETATimeToNextPort"); // DK @@ -1303,7 +1303,7 @@ namespace bsmd.ExcelReadService Util.ScanMessage(was, reader); was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery"); - was.LastWasteDisposalPort = reader.ReadLoCode("WAS.LastWasteDisposalPort"); + was.LastWasteDisposalPort = reader.ReadLoCode("WAS.LastWasteDisposalPort"); string wastedispServProvName = reader.ReadText("WAS.WasteDisposalServiceProviderName"); if (wastedispServProvName != null) @@ -1324,7 +1324,7 @@ namespace bsmd.ExcelReadService if (wastedispServProvName.Length > 90) readState = ExcelReader.ReadState.FAIL; else readState = ExcelReader.ReadState.OK; } - + reader.Conf.ConfirmText("WAS.WasteDisposalServiceProviderName", wastedispServProvName, readState); // Waste 1 - 15 @@ -1332,7 +1332,7 @@ namespace bsmd.ExcelReadService { string wastetype = string.Format("WAS.WasteType_{0}", i); string wasteCode = string.Format("WAS.WasteCode_{0}", i); - string wasteDescription = string.Format("WAS.WasteDescription_{0}", i); + string wasteDescription = string.Format("WAS.WasteDescription_{0}", i); string wasteAmount = string.Format("WAS.WasteDisposalAmount_MTQ_{0}", i); string wasteCapacity = string.Format("WAS.WasteCapacity_MTQ_{0}", i); string wasteRetained = string.Format("WAS.WasteAmountRetained_MTQ_{0}", i); @@ -1348,13 +1348,13 @@ namespace bsmd.ExcelReadService was.Waste.Add(waste); } - waste.WasteType = (int?) reader.ReadNumber(wasteCode); + waste.WasteType = (int?) reader.ReadNumber(wasteCode); if (waste.WasteType.HasValue && (waste.WasteType == 2313)) - waste.WasteType = 2600; + waste.WasteType = 2600; if (reader.Mode == ExcelReader.CountryMode.DE) - { + { reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplay, ExcelReader.ReadState.OK); reader.Conf.ConfirmNumber(wasteCode, waste.WasteType, ExcelReader.ReadState.OK); } @@ -1364,7 +1364,7 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmNumber(wasteCode, WAS.DKWasteCodes[i - 1], ExcelReader.ReadState.OK); } - // Waste description Spezialfälle für DK + // Waste description Spezialfälle für DK waste.WasteDescription = reader.ReadText(wasteDescription); if (waste.WasteDescription.IsNullOrEmpty()) { @@ -1394,14 +1394,14 @@ namespace bsmd.ExcelReadService if((reader.Mode == ExcelReader.CountryMode.DK) && (i==9)) { _log.DebugFormat("DK: Changing Waste code {0} to 2300 for line {1}", waste.WasteType, i); - waste.WasteType = 2300; + waste.WasteType = 2300; } reader.Conf.ConfirmText(wasteDescription, waste.WasteDescription, waste.WasteDescription.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK); - waste.WasteDisposalAmount_MTQ = reader.ReadNumberDefaultZero(wasteAmount); - waste.WasteCapacity_MTQ = reader.ReadNumberDefaultZero(wasteCapacity); + waste.WasteDisposalAmount_MTQ = reader.ReadNumberDefaultZero(wasteAmount); + waste.WasteCapacity_MTQ = reader.ReadNumberDefaultZero(wasteCapacity); waste.WasteAmountRetained_MTQ = reader.ReadNumberDefaultZero(wasteRetained); - + waste.WasteDisposalPort = reader.ReadLoCode(wastePort); bool isLocode; ExcelReader.ReadState rs; @@ -1414,11 +1414,11 @@ namespace bsmd.ExcelReadService { isLocode = (LocodeDB.PortNameFromLocode(waste.WasteDisposalPort) != null); rs = isLocode ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL; - } + } reader.Conf.ConfirmText(wastePort, waste.WasteDisposalPort, rs); - waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumberDefaultZero(amountGen); - waste.WasteDisposedAtLastPort_MTQ = reader.ReadNumberDefaultZero(wasteDis); + waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumberDefaultZero(amountGen); + // waste.WasteDisposedAtLastPort_MTQ = reader.ReadNumberDefaultZero(wasteDis); /* if ((reader.Mode == ExcelReader.CountryMode.DE) && @@ -1447,7 +1447,7 @@ namespace bsmd.ExcelReadService highlightRow15 &= (waste.WasteAmountRetained_MTQ > 0); highlightRow15 &= (waste.WasteDisposalPort != "ZZUKN"); highlightRow15 &= (waste.WasteAmountGeneratedTillNextPort_MTQ > 0); - highlightRow15 &= (waste.WasteDisposedAtLastPort_MTQ > 0); + // highlightRow15 &= (waste.WasteDisposedAtLastPort_MTQ > 0); if(highlightRow15) { @@ -1465,7 +1465,7 @@ namespace bsmd.ExcelReadService if (!waste.WasteType.HasValue) { - was.Waste.Remove(waste); + was.Waste.Remove(waste); } } @@ -1493,7 +1493,7 @@ namespace bsmd.ExcelReadService mdh.MDHSimplification = false; mdh.PortOfCallWhereCompleteMDHNotified = ""; - + string kuerzelErsteZelle = reader.ReadText("MDH.PortOfCallLast30DaysLocode_1"); try @@ -1565,7 +1565,7 @@ namespace bsmd.ExcelReadService poc30d.PortOfCallLast30DaysCrewMembersJoined = false; if (poc30d.PortOfCallLast30DaysCrewMembersJoined ?? false) - { + { // try different separators string[] crew = crewNameString.Split(';'); if (crew.Length == 1) @@ -1585,7 +1585,7 @@ namespace bsmd.ExcelReadService if (crew[j].Length > 90) readState = ExcelReader.ReadState.FAIL; } - reader.Conf.ConfirmText(crewName, crewNameString, readState); + reader.Conf.ConfirmText(crewName, crewNameString, readState); } // falls Häkchen gesetzt aber Namensfeld leer: Fehler markieren @@ -1729,7 +1729,7 @@ namespace bsmd.ExcelReadService newSEC.MessageHeader = secMessage; secMessage.Elements.Add(newSEC); } - SEC sec = secMessage.Elements[0] as SEC; + SEC sec = secMessage.Elements[0] as SEC; Util.ScanMessage(sec, reader); reader.ReadBoolean("SEC.AreMatterToReport"); // das berücksichtigen wir derzeit nicht in der DB (implizit) @@ -1756,7 +1756,7 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText("SEC.CurrentShipSecurityLevel", shipsecLevel, sec.CurrentShipSecurityLevel.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); } - reader.Conf.ConfirmText("SEC.ISSCType", isscType, sec.ISSCType.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL); + reader.Conf.ConfirmText("SEC.ISSCType", isscType, sec.ISSCType.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL); string isscIssuerType = reader.ReadText("SEC.ISSCIssuerType"); if(isscIssuerType != null) @@ -1768,8 +1768,8 @@ namespace bsmd.ExcelReadService } reader.Conf.ConfirmText("SEC.ISSCIssuerType", isscIssuerType, sec.ISSCIssuerType.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL); - sec.GeneralDescriptionOfCargo = reader.ReadGeneralDescriptionOfCargo("SEC.GeneralDescriptionOfCargo"); - + sec.GeneralDescriptionOfCargo = reader.ReadGeneralDescriptionOfCargo("SEC.GeneralDescriptionOfCargo"); + bool? secKielArrival = reader.ReadBoolean("SEC.KielCanalPassagePlanned_Arrival"); bool? secKielDeparture = reader.ReadBoolean("SEC.KielCanalPassagePlanned_Departure"); @@ -1800,7 +1800,7 @@ namespace bsmd.ExcelReadService string portDateOfArrival = string.Format("SEC.PortFacilityDateOfArrival_{0}", i); string portDateOfDeparture = string.Format("SEC.PortFacilityDateOfDeparture_{0}", i); string portShipSecLevel = string.Format("SEC.PortFacilityShipSecurityLevel_{0}", i); - string portGISISCode = string.Format("SEC.PortFacilityGISISCode_{0}", i); + string portGISISCode = string.Format("SEC.PortFacilityGISISCode_{0}", i); string portSecMatters = string.Format("SEC.PortFacilitySecurityMattersToReport_{0}", i); if (!(sec.GetPortFacilityWithIdentifier(i.ToString()) is LastTenPortFacilitiesCalled l10fc)) @@ -1831,7 +1831,7 @@ namespace bsmd.ExcelReadService if (sLevel.Contains('3')) l10fc.PortFacilityShipSecurityLevel = 3; reader.Conf.ConfirmText(portShipSecLevel, sLevel, l10fc.PortFacilityShipSecurityLevel.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); } - + l10fc.PortFacilityGISISCode = reader.ReadTextNoWhitespace(portGISISCode); if (l10fc.PortFacilityGISISCode.IsNullOrEmpty() || l10fc.PortFacilityGISISCode == "0") @@ -1929,7 +1929,7 @@ namespace bsmd.ExcelReadService bkra.BunkerFuelQuantity_TNE = reader.ReadNumber(lnQuantity); bkra.BunkerFuelType = reader.ReadText(lnType); reader.Conf.ConfirmText(lnType, bkra.BunkerFuelType, ExcelReader.ReadState.OK); - + // "OK" Quantity falls Type nicht angegeben if (bkra.BunkerFuelType.IsNullOrEmpty() && !bkra.BunkerFuelQuantity_TNE.HasValue) reader.Conf.ConfirmNumber(lnQuantity, null, ExcelReader.ReadState.OK); @@ -1938,11 +1938,11 @@ namespace bsmd.ExcelReadService { reader.Conf.ConfirmText(lnType, null, ExcelReader.ReadState.FAIL); reader.Conf.ConfirmNumber(lnQuantity, bkra.BunkerFuelQuantity_TNE, ExcelReader.ReadState.WARN); - } + } // dont save empty element if(bkra.IsNew && !bkra.BunkerFuelQuantity_TNE.HasValue && bkra.BunkerFuelType.IsNullOrEmpty()) - bkraMessage.Elements.Remove(bkra); + bkraMessage.Elements.Remove(bkra); } } @@ -1982,7 +1982,7 @@ namespace bsmd.ExcelReadService // dont save empty element if (bkrd.IsNew && !bkrd.BunkerFuelQuantity_TNE.HasValue && bkrd.BunkerFuelType.IsNullOrEmpty()) - bkrdMessage.Elements.Remove(bkrd); + bkrdMessage.Elements.Remove(bkrd); } } @@ -1991,7 +1991,7 @@ namespace bsmd.ExcelReadService #region TOWA private static void ScanTOWA(List messages, MessageCore messageCore, ExcelReader reader) - { + { Message towaMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWA); // 24.4.21: TOWA beim Excel import @@ -2051,7 +2051,7 @@ namespace bsmd.ExcelReadService #region TOWD private static void ScanTOWD(List messages, MessageCore messageCore, ExcelReader reader) - { + { Message towdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWD); // 24.4.21: TOWD beim Excel import @@ -2099,7 +2099,7 @@ namespace bsmd.ExcelReadService towd.TowageOnDepartureBeam_MTR = reader.ReadNumber(tBeam); towd.TowageOnDepartureOperatorCompanyName = reader.ReadText(tOp); reader.Conf.ConfirmText(tOp, towd.TowageOnDepartureOperatorCompanyName, towd.TowageOnDepartureOperatorCompanyName.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK); - + } } @@ -2131,7 +2131,7 @@ namespace bsmd.ExcelReadService private static void ScanSERV(List messages, MessageCore messageCore, ExcelReader reader) { - Message servMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.SERV); + Message servMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.SERV); if(servMessage.Elements.Count == 0) { SERV newSERV = new SERV(); @@ -2218,7 +2218,7 @@ namespace bsmd.ExcelReadService ladgMessage.Elements.Add(ladg); } - ladg.CargoHandlingType = reader.ReadCargoHandlingType(lnCHT); + ladg.CargoHandlingType = reader.ReadCargoHandlingType(lnCHT); // Transit-Ladung für DE nicht übernehmen! if ((reader.Mode == ExcelReader.CountryMode.DE) && ((ladg.CargoHandlingType ?? 0) == 2)) @@ -2257,18 +2257,18 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText(lnType, null, ExcelReader.ReadState.WARN); ladg.CargoCodeNST = null; } - } + } else { ladg.CargoCodeNST = null; reader.Conf.ConfirmText(lnType, null, ExcelReader.ReadState.FAIL); } - } + } } ladg.CargoLACode = reader.ReadCargoLACode(lnLACode); - ladg.CargoCodeNST_3 = reader.ReadText(lnZusatz); + ladg.CargoCodeNST_3 = reader.ReadText(lnZusatz); if (!ladg.CargoCodeNST_3.IsNullOrEmpty()) { if (ladg.CargoCodeNST_3.Length == 1) @@ -2290,8 +2290,8 @@ namespace bsmd.ExcelReadService ladg.CargoNumberOfItems = (int?) reader.ReadNumber(lnCNOI); ladg.CargoGrossQuantity_TNE = reader.ReadNumber(lnCGQ); - ladg.PortOfLoading = reader.ReadLoCode(lnLoad); - ladg.PortOfDischarge = reader.ReadLoCode(lnDis); + ladg.PortOfLoading = reader.ReadLoCode(lnLoad); + ladg.PortOfDischarge = reader.ReadLoCode(lnDis); // dont save empty element if (ladg.IsNew && !ladg.CargoHandlingType.HasValue) @@ -2342,11 +2342,11 @@ namespace bsmd.ExcelReadService crew.CrewMemberDuty = reader.ReadText(crewDuty); reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, crew.CrewMemberDuty.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); - crew.CrewMemberNationality = reader.ReadNationality(crewNationality); + crew.CrewMemberNationality = reader.ReadNationality(crewNationality); crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth); reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, crew.CrewMemberPlaceOfBirth.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); - crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth); + crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth); crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType); crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId); @@ -2393,7 +2393,7 @@ namespace bsmd.ExcelReadService crew.CrewMemberDuty = reader.ReadText(crewDuty); reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, crew.CrewMemberDuty.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); - crew.CrewMemberNationality = reader.ReadNationality(crewNationality); + crew.CrewMemberNationality = reader.ReadNationality(crewNationality); crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth); reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, crew.CrewMemberPlaceOfBirth.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); @@ -2452,7 +2452,7 @@ namespace bsmd.ExcelReadService pas.PassengerFirstName = firstName; reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, pas.PassengerFirstName.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); pas.PassengerGender = reader.ReadGender(pasGender); - pas.PassengerNationality = reader.ReadNationality(pasNationality); + pas.PassengerNationality = reader.ReadNationality(pasNationality); // TODO: Nicht klar ob hier LOCODEs kommen oder nicht pas.PassengerPortOfEmbarkation = reader.ReadLoCode(pasEmbarkation); reader.Conf.ConfirmText(pasEmbarkation, pas.PassengerPortOfEmbarkation, pas.PassengerPortOfEmbarkation.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); @@ -2505,7 +2505,7 @@ namespace bsmd.ExcelReadService pas.PassengerFirstName = reader.ReadText(pasFirstName); reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, pas.PassengerFirstName.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); pas.PassengerGender = reader.ReadGender(pasGender); - pas.PassengerNationality = reader.ReadNationality(pasNationality); + 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, pas.PassengerPortOfEmbarkation.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); @@ -2541,7 +2541,7 @@ namespace bsmd.ExcelReadService { object propValue = property.GetValue(dbEntity, null); string value = (propValue == null) ? string.Empty : propValue.ToString(); - LookupNameAttribute lookupNameAttribute = Attribute.GetCustomAttribute(property, typeof(LookupNameAttribute)) as LookupNameAttribute; + LookupNameAttribute lookupNameAttribute = Attribute.GetCustomAttribute(property, typeof(LookupNameAttribute)) as LookupNameAttribute; if (property.PropertyType == typeof(DateTime?)) { @@ -2587,7 +2587,7 @@ namespace bsmd.ExcelReadService readState = ExcelReader.ReadState.FAIL; } } - + reader.Conf.ConfirmText(lookupNameAttribute.LookupName, sheetValue, readState); } else @@ -2626,9 +2626,9 @@ namespace bsmd.ExcelReadService { bool? sheetValue = reader.ReadBoolean(lookupNameAttribute.LookupName); string boolStringValue = reader.ReadText(lookupNameAttribute.LookupName); - if (sheetValue.HasValue) { + if (sheetValue.HasValue) { property.SetValue(dbEntity, sheetValue); - reader.Conf.ConfirmText(lookupNameAttribute.LookupName, sheetValue.Value ? "Y" : "N", + reader.Conf.ConfirmText(lookupNameAttribute.LookupName, sheetValue.Value ? "Y" : "N", ExcelReader.ReadState.OK); } else @@ -2640,7 +2640,7 @@ namespace bsmd.ExcelReadService { _log.DebugFormat("unhandled property type: {0}", property.PropertyType); } - + } } @@ -2651,10 +2651,10 @@ namespace bsmd.ExcelReadService /// /// Check with cell values if this message core is already in our DB - /// + /// private static MessageCore LookupMessageCore(ExcelReader reader, out string message) { - // lookup using field values + // lookup using field values MessageCore result = null; DateTime? eta = null; string poc; @@ -2670,7 +2670,7 @@ namespace bsmd.ExcelReadService if (bsmd.database.Util.IsVisitId(visitTransitId)) { result = DBManager.Instance.GetMessageCoreByVisitId(visitTransitId); - } + } else if (bsmd.database.Util.IsTransitId(visitTransitId)) { result = DBManager.Instance.GetMessageCoreByTransitId(visitTransitId); @@ -2688,7 +2688,7 @@ namespace bsmd.ExcelReadService if (result.PoC.Substring(0, 2) == "DK") reader.SetConfirmation(Properties.Settings.Default.ConfirmationDK); else - reader.SetConfirmation(Properties.Settings.Default.ConfirmationDE); + reader.SetConfirmation(Properties.Settings.Default.ConfirmationDE); // copy poc/imo/eta to return sheet poc = reader.ReadText("Visit.PortOfCall"); @@ -2701,12 +2701,12 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText("ReferenceNumber", result.HerbergReportType, result.HerbergReportType.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); } else - { + { // lookup poc, imo, eta poc = reader.ReadText("Visit.PortOfCall"); if (poc != null) - { + { // Prüfen auf Transit if (poc.IndexOf("CANAL", StringComparison.OrdinalIgnoreCase) >= 0 || poc.Equals("ZZNOK", StringComparison.OrdinalIgnoreCase)) @@ -2771,7 +2771,7 @@ namespace bsmd.ExcelReadService message = "invalid PoC"; return null; } - } + } imo = reader.ReadText("Visit.IMONumber"); reader.Conf.ConfirmText("Visit.IMONumber", imo, imo.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); @@ -2784,7 +2784,7 @@ namespace bsmd.ExcelReadService if ((imo != null) && (eta.HasValue) && (poc != null)) { - result = DBManager.Instance.GetMessageCoreByShipInfos(imo, eta.Value, poc); + result = DBManager.Instance.GetMessageCoreByShipInfos(imo, eta.Value, poc); if(result != null) { _log.InfoFormat("Core [{3}] found for IMO {0}, ETA {1}, Poc {2}", imo, eta, poc, result.Id); @@ -2856,7 +2856,7 @@ namespace bsmd.ExcelReadService if (result.IsTransit) result.ETAKielCanal = eta; else - result.ETA = eta; + result.ETA = eta; if (result.IMO.Length > 7) { @@ -2886,15 +2886,15 @@ namespace bsmd.ExcelReadService return result; } - #endregion + #endregion #region GetMessageWithType private static Message GetMessageWithType(List messages, MessageCore core, Message.NotificationClass type) - { - foreach(Message message in messages) + { + foreach(Message message in messages) if (message.MessageNotificationClass == type) return message; - + Message newMessage = DBManager.Instance.GetMessage(core, type); if (newMessage == null) { diff --git a/bsmd.dakosy/Request.cs b/bsmd.dakosy/Request.cs index 72ddbae4..5b941c73 100644 --- a/bsmd.dakosy/Request.cs +++ b/bsmd.dakosy/Request.cs @@ -739,9 +739,7 @@ namespace bsmd.dakosy vList.Visit[0].WAS.WasteDisposalServiceProviderName[i].ServiceProviderName = ((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName; } } - vList.Visit[0].WAS.WasteDisposalDeliverySpecified = was.WasteDisposalDelivery.HasValue; - byte wdd = was.WasteDisposalDelivery ?? 0; - vList.Visit[0].WAS.WasteDisposalDelivery = WDDTypeFromNSWEnumeration(wdd); + if (was.Waste.Count > 0) { vList.Visit[0].WAS.Waste = new Waste[was.Waste.Count]; diff --git a/bsmd.database/WAS.cs b/bsmd.database/WAS.cs index 1b825d2f..b427b419 100644 --- a/bsmd.database/WAS.cs +++ b/bsmd.database/WAS.cs @@ -129,12 +129,7 @@ namespace bsmd.database [LookupName("WAS.LastWasteDisposalDate")] [ENI2Validation] [DateOnly] - public DateTime? LastWasteDisposalDate { get; set; } - - [Obsolete] - [ShowReport] - [ENI2Validation] - public byte? WasteDisposalDelivery { get; set; } + public DateTime? LastWasteDisposalDate { get; set; } [LookupName("WAS.ConfirmationOfSufficiency")] [ENI2Validation] @@ -232,8 +227,7 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P2", this.WasteDisposalValidExemption); scmd.Parameters.AddWithNullableValue("@P3", this.LastWasteDisposalPort); scmd.Parameters.AddWithNullableValue("@P4", this.ConfirmationOfCorrectness); - scmd.Parameters.AddWithNullableValue("@P5", this.LastWasteDisposalDate); - scmd.Parameters.AddWithNullableValue("@P6", this.WasteDisposalDelivery); + scmd.Parameters.AddWithNullableValue("@P5", this.LastWasteDisposalDate); scmd.Parameters.AddWithNullableValue("@P7", this.ConfirmationOfSufficiency); scmd.Parameters.AddWithNullableValue("@P8", this.NextWasteDisposalPort); @@ -242,14 +236,14 @@ namespace bsmd.database this.CreateId(); scmd.Parameters.AddWithValue("@ID", this.Id); scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, WasteDisposalValidExemption, " + - "LastWasteDisposalPort, ConfirmationOfCorrectness, LastWasteDisposalDate, WasteDisposalDelivery, " + - "ConfirmationOfSufficiency, NextWasteDisposalPort) VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8 )", this.Tablename); + "LastWasteDisposalPort, ConfirmationOfCorrectness, LastWasteDisposalDate, " + + "ConfirmationOfSufficiency, NextWasteDisposalPort) VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P7, @P8 )", this.Tablename); } else { scmd.Parameters.AddWithValue("ID", this.Id); scmd.CommandText = string.Format("UPDATE {0} SET WasteDisposalValidExemption = @P2, LastWasteDisposalPort = @P3, " + - "ConfirmationOfCorrectness = @P4, LastWasteDisposalDate = @P5, WasteDisposalDelivery = @P6, ConfirmationOfSufficiency = @P7, " + + "ConfirmationOfCorrectness = @P4, LastWasteDisposalDate = @P5, ConfirmationOfSufficiency = @P7, " + "NextWasteDisposalPort = @P8 WHERE Id = @ID", this.Tablename); } } @@ -257,7 +251,7 @@ namespace bsmd.database public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) { string query = string.Format("SELECT Id, WasteDisposalValidExemption, LastWasteDisposalPort, ConfirmationOfCorrectness, " + - "LastWasteDisposalDate, WasteDisposalDelivery, ConfirmationOfSufficiency, NextWasteDisposalPort " + + "LastWasteDisposalDate, ConfirmationOfSufficiency, NextWasteDisposalPort " + "FROM {0} ", this.Tablename); switch (filter) @@ -289,10 +283,9 @@ namespace bsmd.database if (!reader.IsDBNull(1)) was.WasteDisposalValidExemption = reader.GetBoolean(1); if (!reader.IsDBNull(2)) was.LastWasteDisposalPort = reader.GetString(2); if (!reader.IsDBNull(3)) was.ConfirmationOfCorrectness = reader.GetBoolean(3); - if (!reader.IsDBNull(4)) was.LastWasteDisposalDate = reader.GetDateTime(4); - if (!reader.IsDBNull(5)) was.WasteDisposalDelivery = reader.GetByte(5); - if (!reader.IsDBNull(6)) was.ConfirmationOfSufficiency = reader.GetBoolean(6); - if (!reader.IsDBNull(7)) was.NextWasteDisposalPort = reader.GetString(7); + if (!reader.IsDBNull(4)) was.LastWasteDisposalDate = reader.GetDateTime(4); + if (!reader.IsDBNull(5)) was.ConfirmationOfSufficiency = reader.GetBoolean(5); + if (!reader.IsDBNull(6)) was.NextWasteDisposalPort = reader.GetString(6); result.Add(was); } reader.Close(); diff --git a/bsmd.database/WasteDisposalServiceProvider.cs b/bsmd.database/WasteDisposalServiceProvider.cs index c231979e..9aa3386b 100644 --- a/bsmd.database/WasteDisposalServiceProvider.cs +++ b/bsmd.database/WasteDisposalServiceProvider.cs @@ -32,11 +32,7 @@ namespace bsmd.database [MaxLength(99)] [ENI2Validation] [Validation(ValidationCode.STRING_MAXLEN, 99)] - public string WasteDisposalServiceProviderName { get; set; } - - [Obsolete] - [JsonIgnore] - public byte? WasteDisposalDelivery { get; set; } + public string WasteDisposalServiceProviderName { get; set; } public string Identifier { get; set; } @@ -53,28 +49,27 @@ namespace bsmd.database SqlCommand scmd = cmd as SqlCommand; scmd.Parameters.AddWithValue("@P1", this.WAS.Id); - scmd.Parameters.AddWithNullableValue("@P2", this.WasteDisposalServiceProviderName); - scmd.Parameters.AddWithNullableValue("@P3", this.WasteDisposalDelivery); + scmd.Parameters.AddWithNullableValue("@P2", this.WasteDisposalServiceProviderName); scmd.Parameters.AddWithNullableValue("@P4", this.Identifier); if (this.IsNew) { this.CreateId(); scmd.Parameters.AddWithValue("@ID", this.Id); - scmd.CommandText = string.Format("INSERT INTO {0} (Id, WASId, WasteDisposalServiceProviderName, WasteDisposalDelivery, Identifier) " + - "VALUES ( @ID, @P1, @P2, @P3, @P4 )", this.Tablename); + scmd.CommandText = string.Format("INSERT INTO {0} (Id, WASId, WasteDisposalServiceProviderName, Identifier) " + + "VALUES ( @ID, @P1, @P2, @P4 )", this.Tablename); } else { scmd.Parameters.AddWithValue("ID", this.Id); - scmd.CommandText = string.Format("UPDATE {0} SET WasteDisposalServiceProviderName = @P2, WasteDisposalDelivery = @P3 " + + scmd.CommandText = string.Format("UPDATE {0} SET WasteDisposalServiceProviderName = @P2 " + "WHERE Id = @ID", this.Tablename); } } public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) { - string query = string.Format("SELECT Id, WasteDisposalServiceProviderName, WasteDisposalDelivery, Identifier FROM {0}", this.Tablename); + string query = string.Format("SELECT Id, WasteDisposalServiceProviderName, Identifier FROM {0}", this.Tablename); switch (filter) { @@ -100,9 +95,8 @@ namespace bsmd.database WasteDisposalServiceProvider wdsp = new WasteDisposalServiceProvider(); wdsp.id = reader.GetGuid(0); - if (!reader.IsDBNull(1)) wdsp.WasteDisposalServiceProviderName = reader.GetString(1); - if (!reader.IsDBNull(2)) wdsp.WasteDisposalDelivery = reader.GetByte(2); - if (!reader.IsDBNull(3)) wdsp.Identifier = reader.GetString(3); + if (!reader.IsDBNull(1)) wdsp.WasteDisposalServiceProviderName = reader.GetString(1); + if (!reader.IsDBNull(3)) wdsp.Identifier = reader.GetString(2); result.Add(wdsp); } reader.Close(); diff --git a/bsmd.dbh/Request.cs b/bsmd.dbh/Request.cs index 587728e0..d6c9abe8 100644 --- a/bsmd.dbh/Request.cs +++ b/bsmd.dbh/Request.cs @@ -15,7 +15,7 @@ using bsmd.database; using bsmd.dbh.DBHWebReference; namespace bsmd.dbh -{ +{ /// /// This class implements the "oldschool" approach of sending classes via the SOAP interface. @@ -118,7 +118,7 @@ namespace bsmd.dbh { if (message == null) return false; - RootType rootType = message.Reset ? RootType.RESET : RootType.DATA; + RootType rootType = message.Reset ? RootType.RESET : RootType.DATA; if (message.ReportingParty == null) { @@ -190,7 +190,7 @@ namespace bsmd.dbh rootVisit.ETAPortOfCall = message.MessageCore.ETA.Value.ToDBHDateString(); else rootVisit.ETAPortOfCall = null; - + item = rootVisit; break; @@ -353,7 +353,7 @@ namespace bsmd.dbh SEC sec = message.Elements[0] as SEC; List secItems = new List(); - List choiceType1s = new List(); + List choiceType1s = new List(); if(!message.MessageCore.IsTransit) { @@ -417,7 +417,7 @@ namespace bsmd.dbh choiceType1s.Add(ItemsChoiceType1.GeneralDescriptionOfCargo); secItems.Add((CargoDescription)sec.GeneralDescriptionOfCargo.Value); } - + for (int i=0; i < sec.LastTenPortFacilitesCalled.Count; i++) { choiceType1s.Add(ItemsChoiceType1.LastTenPortFacilitiesCalled); @@ -458,7 +458,7 @@ namespace bsmd.dbh if (shipToShip.ShipToShipActivityDateTo.HasValue) s2s.ShipToShipActivityDateTo = shipToShip.ShipToShipActivityDateTo.Value; - //int activityType; + //int activityType; //if (!Int32.TryParse(shipToShip.ShipToShipActivityType, out activityType)) //activityType = NOA_NOD.getCallPurposeCodeFromDescription(shipToShip.ShipToShipActivityType) ?? 0; //s2s.ShipToShipActivityType = activityType; @@ -537,8 +537,8 @@ namespace bsmd.dbh if(crew.CrewMemberIdentityDocumentIssuingState.Trim().Length == 2) rootCREW.CrewMember[i].CrewMemberIdentityDocumentIssuingState = crew.CrewMemberIdentityDocumentIssuingState; rootCREW.CrewMember[i].CrewMemberIdentityDocumentExpiryDateSpecified = crew.CrewMemberIdentityDocumentExpiryDate.HasValue; - if (crew.CrewMemberIdentityDocumentExpiryDate.HasValue) - rootCREW.CrewMember[i].CrewMemberIdentityDocumentExpiryDate = crew.CrewMemberIdentityDocumentExpiryDate.Value; + if (crew.CrewMemberIdentityDocumentExpiryDate.HasValue) + rootCREW.CrewMember[i].CrewMemberIdentityDocumentExpiryDate = crew.CrewMemberIdentityDocumentExpiryDate.Value; } item = rootCREW; @@ -706,7 +706,7 @@ namespace bsmd.dbh rootStat.TransportMode = RootSTATTransportMode.Item1; // default is maritime transport! if (!stat.TransportMode.IsNullOrEmpty() && stat.TransportMode.Equals("8")) rootStat.TransportMode = RootSTATTransportMode.Item8; - + if (!stat.ISMCompanyName.IsNullOrEmpty()) { rootStat.ISMCompany = new RootSTATISMCompany(); @@ -726,7 +726,7 @@ namespace bsmd.dbh case Message.NotificationClass.LADG: { RootLADG rootLADG = new RootLADG(); - List cargoList = new List(); + List cargoList = new List(); for (int i = 0; i < message.Elements.Count; i++ ) { LADG ladg = message.Elements[i] as LADG; @@ -764,7 +764,7 @@ namespace bsmd.dbh if (ladg.PortOfLoading.IsNullOrEmpty()) cargo.CargoPortOfLoading = "ZZUKN"; else - cargo.CargoPortOfLoading = ladg.PortOfLoading; + cargo.CargoPortOfLoading = ladg.PortOfLoading; if (ladg.PortOfDischarge.IsNullOrEmpty()) cargo.CargoPortOfDischarge = "ZZUKN"; @@ -850,7 +850,7 @@ namespace bsmd.dbh if (sendVolume) rootPre.TankerDetails.VolumeOfCargo_TNE = Decimal.Round((decimal)(pre72h.VolumeOfCargo.Value), 3); - } + } rootPre.PlannedOperations = pre72h.PlannedOperations; rootPre.PlannedWorks = pre72h.PlannedWorks; rootPre.DateOfLastExpandedInspectionSpecified = pre72h.DateOfLastExpandedInspection.HasValue; @@ -924,7 +924,7 @@ namespace bsmd.dbh choiceTypes2.Add(ItemsChoiceType2.SanitaryMeasuresApplied); mdhItems.Add(mdh.SanitaryMeasuresApplied ?? false ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N); - + if (mdh.SanitaryMeasuresApplied ?? false) { foreach (SanitaryMeasuresDetail smd in mdh.SanitaryMeasuresDetails) @@ -938,7 +938,7 @@ namespace bsmd.dbh mdhItems.Add(smDet); } } - + choiceTypes2.Add(ItemsChoiceType2.StowawaysDetected); mdhItems.Add(mdh.StowawaysDetected ?? false ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N); @@ -947,7 +947,7 @@ namespace bsmd.dbh foreach (StowawaysJoiningLocation sjl in mdh.StowawaysJoiningLocations) { if(!sjl.StowawayJoiningLocation.IsNullOrEmpty()) - concatLocations = string.Format("{0} {1}", concatLocations, sjl.StowawayJoiningLocation); + concatLocations = string.Format("{0} {1}", concatLocations, sjl.StowawayJoiningLocation); } mdhItems.Add(concatLocations); @@ -983,7 +983,7 @@ namespace bsmd.dbh infected.InfectedAreaDate = ia.InfectedAreaDate.Value; } } - + if (mdh.PortOfCallLast30Days.Count > 0) { choiceTypes2.Add(ItemsChoiceType2.PortsOfCallLast30Days); @@ -1063,27 +1063,27 @@ namespace bsmd.dbh { choiceType3s.Add(ItemsChoiceType3.WasteDisposalDelivery); wasteItems.Add((DisposalType)was.WasteDisposalDelivery.Value); - } + } - /* - {"Wert von 'ItemsElementName' stimmt nicht mit dem Typ von 'bsmd.dbh.DBHWebReference.RootWASWaste' überein. + /* + {"Wert von 'ItemsElementName' stimmt nicht mit dem Typ von 'bsmd.dbh.DBHWebReference.RootWASWaste' überein. * Sie müssen ihn auf 'bsmd.dbh.DBHWebReference.ItemsChoiceType3.@Waste' festlegen."} */ for (int j = 0; j < was.Waste.Count; j++) { choiceType3s.Add(ItemsChoiceType3.Waste); - RootWASWaste rww = new RootWASWaste(); + RootWASWaste rww = new RootWASWaste(); Waste waste = was.Waste[j] as Waste; if ((waste.WasteType ?? 0) == 0) continue; // not a valid waste type rww.WasteType = new RootWASWasteWasteType(); rww.WasteType.WasteCode = waste.WasteType ?? 0; if (rww.WasteType.WasteCode == 2313) rww.WasteType.WasteCode = 2600; // Christin, 22.3.17 rww.WasteType.WasteDescription = waste.WasteDescription; - - rww.WasteDisposedAtLastPort_MTQ = decimal.Round((decimal) (waste.WasteDisposedAtLastPort_MTQ ?? 0), 3); + + // rww.WasteDisposedAtLastPort_MTQ = decimal.Round((decimal) (waste.WasteDisposedAtLastPort_MTQ ?? 0), 3); rww.WasteDisposalAmount_MTQ = decimal.Round((decimal)(waste.WasteDisposalAmount_MTQ ?? 0), 3); - + rww.WasteDetails = new RootWASWasteWasteDetails(); rww.WasteDetails.WasteCapacity_MTQ = decimal.Round((decimal)(waste.WasteCapacity_MTQ ?? 0), 3); rww.WasteDetails.WasteAmountRetained_MTQ = decimal.Round((decimal)(waste.WasteAmountRetained_MTQ ?? 0), 3); @@ -1137,7 +1137,7 @@ namespace bsmd.dbh rootTowa.TowageOnArrival[i].TowageOnArrivalRemarks = towa.TowageOnArrivalRemarks; } item = rootTowa; - } + } break; #endregion @@ -1176,7 +1176,7 @@ namespace bsmd.dbh #region HAZA //Felderreihenfolge wegen einfacher Test/Impl. entspricht genau dem XLS Sheet - case Message.NotificationClass.HAZA: + case Message.NotificationClass.HAZA: { RootHAZA rootHAZA = new RootHAZA(); HAZ haz = message.Elements[0] as HAZ; @@ -1284,7 +1284,7 @@ namespace bsmd.dbh rootIMDG.ContainerNumber = imdgPos.ContainerNumber; if(!imdgPos.VehicleLicenseNumber.IsNullOrEmpty()) rootIMDG.VehicleLicenseNumber = imdgPos.VehicleLicenseNumber; - + if (imdgPos.StowagePosition.IsNullOrEmpty()) { rootIMDG.Items = new string[3]; @@ -1304,7 +1304,7 @@ namespace bsmd.dbh rootIMDG.Items = new string[1] { imdgPos.StowagePosition }; rootIMDG.ItemsElementName = new ItemsChoiceType4[1] { ItemsChoiceType4.StowagePosition }; } - + rootIMDG.PortOfLoading = imdgPos.PortOfLoading; rootIMDG.PortOfDischarge = imdgPos.PortOfDischarge; if(!imdgPos.Remarks.IsNullOrEmpty()) @@ -1434,9 +1434,9 @@ namespace bsmd.dbh rootHAZA.Items[3] = dpgOnArrival; #endregion - + } - + item = rootHAZA; } break; @@ -1448,7 +1448,7 @@ namespace bsmd.dbh { RootHAZD rootHAZD = new RootHAZD(); HAZ haz = message.Elements[0] as HAZ; - + if (haz.NoDPGOnBoardOnArrival ?? false) { rootHAZD.ItemsElementName = new ItemsChoiceType6[1]; @@ -1702,9 +1702,9 @@ namespace bsmd.dbh rootHAZD.Items[3] = dpgOnDeparture; #endregion - + } - + item = rootHAZD; } @@ -1721,7 +1721,7 @@ namespace bsmd.dbh #endregion } - // send object + // send object bool returnval = true; try @@ -1766,9 +1766,9 @@ namespace bsmd.dbh catch (Exception ex) { _log.ErrorFormat("Exception on dbh message send: {0}", ex.Message); - if (ex.InnerException != null) + if (ex.InnerException != null) _log.ErrorFormat("Inner exception: {0}", ex.InnerException.Message); - + returnval = false; } finally