From e73371eb9360552598eb2e945c18fa2210526649 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Wed, 23 Mar 2016 11:07:58 +0000 Subject: [PATCH] =?UTF-8?q?3.0.4=20-=20mitten=20im=20Test=20f=C3=BCr=20NSW?= =?UTF-8?q?=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Stundensheet.xlsx | Bin 21200 -> 21270 bytes .../Properties/AssemblyProductInfo.cs | 2 +- .../Properties/AssemblyProjectInfo.cs | 2 +- nsw/Source/bsmd.dbh/Request.cs | 89 +++++------ nsw/Source/bsmd.herberg.FormService/Util.cs | 139 ++++++++++++------ .../bsmd.herberg.FormService/packages.config | 4 + 6 files changed, 142 insertions(+), 94 deletions(-) create mode 100644 nsw/Source/bsmd.herberg.FormService/packages.config diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index a84f816a7a6d13555eff26034e0f7e32a61daa86..5446d2eb179ac61acc566a18c721864c65f30cec 100644 GIT binary patch delta 9018 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 ON>r#3Z4~~S`2PToFm%EI delta 8954 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 I>VGc&AG}vY$^ZZW diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index 085df73c..2a63217f 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("3.0.3")] +[assembly: AssemblyInformationalVersion("3.0.4")] [assembly: AssemblyCopyright("Copyright © 2014-2016 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 f8fa6578..df71804a 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("3.0.3.*")] +[assembly: AssemblyVersion("3.0.4.*")] diff --git a/nsw/Source/bsmd.dbh/Request.cs b/nsw/Source/bsmd.dbh/Request.cs index 75e3bdc8..bfc01b63 100644 --- a/nsw/Source/bsmd.dbh/Request.cs +++ b/nsw/Source/bsmd.dbh/Request.cs @@ -458,7 +458,7 @@ namespace bsmd.dbh { BRKA bkra = message.Elements[i] as BRKA; rootBKRA.BunkerFuelArrival[i] = new RootBKRABunkerFuelArrival(); - rootBKRA.BunkerFuelArrival[i].BunkerFuelQuantity_TNE = (decimal) (bkra.BunkerFuelQuantity_TNE ?? 0); + rootBKRA.BunkerFuelArrival[i].BunkerFuelQuantity_TNE = Decimal.Round((decimal) (bkra.BunkerFuelQuantity_TNE ?? 0),3); rootBKRA.BunkerFuelArrival[i].BunkerFuelType = bkra.BunkerFuelType; } item = rootBKRA; @@ -477,7 +477,7 @@ namespace bsmd.dbh { BRKD bkrd = message.Elements[i] as BRKD; rootBKRD.BunkerFuelDeparture[i] = new RootBKRDBunkerFuelDeparture(); - rootBKRD.BunkerFuelDeparture[i].BunkerFuelQuantity_TNE = (decimal) (bkrd.BunkerFuelQuantity_TNE ?? 0); + rootBKRD.BunkerFuelDeparture[i].BunkerFuelQuantity_TNE = Decimal.Round((decimal) (bkrd.BunkerFuelQuantity_TNE ?? 0),3); rootBKRD.BunkerFuelDeparture[i].BunkerFuelType = bkrd.BunkerFuelType; } item = rootBKRD; @@ -490,7 +490,7 @@ namespace bsmd.dbh { RootTIEFA rootTIEFA = new RootTIEFA(); TIEFA tiefa = message.Elements[0] as TIEFA; - rootTIEFA.DraughtUponArrival_DMT = (decimal) (tiefa.DraughtUponArrival_DMT ?? 0); + rootTIEFA.DraughtUponArrival_DMT = Decimal.Round((decimal) (tiefa.DraughtUponArrival_DMT ?? 0), 1); item = rootTIEFA; } break; @@ -501,7 +501,7 @@ namespace bsmd.dbh { RootTIEFD rootTIEFD = new RootTIEFD(); TIEFD tiefd = message.Elements[0] as TIEFD; - rootTIEFD.DraughtUponDeparture_DMT = (decimal) (tiefd.DraughtUponDeparture_DMT ?? 0); + rootTIEFD.DraughtUponDeparture_DMT = Decimal.Round((decimal) (tiefd.DraughtUponDeparture_DMT ?? 0)); item = rootTIEFD; } break; @@ -555,8 +555,8 @@ namespace bsmd.dbh rootStat.CallSign = stat.CallSign; rootStat.MMSINumber = stat.MMSINumber; rootStat.Flag = stat.Flag; - if (stat.LengthOverall_MTR.HasValue) rootStat.LengthOverall_MTR = (decimal) (stat.LengthOverall_MTR.Value); - if (stat.Beam_MTR.HasValue) rootStat.Beam_MTR = (decimal) (stat.Beam_MTR.Value); + if (stat.LengthOverall_MTR.HasValue) rootStat.LengthOverall_MTR = Decimal.Round((decimal) (stat.LengthOverall_MTR.Value), 2); + if (stat.Beam_MTR.HasValue) rootStat.Beam_MTR = Decimal.Round((decimal) (stat.Beam_MTR.Value)); if (stat.GrossTonnage.HasValue) rootStat.GrossTonnage = stat.GrossTonnage.Value; rootStat.PortOfRegistry = stat.PortOfRegistry; rootStat.ShipType = stat.ShipType; @@ -597,7 +597,7 @@ namespace bsmd.dbh rootLADG.Cargo[i].CargoHandlingType = (HandlingType)(ladg.CargoHandlingType); rootLADG.Cargo[i].CargoCodeNST = ladg.CargoCodeNST; if (ladg.CargoGrossQuantity_TNE.HasValue) - rootLADG.Cargo[i].CargoGrossQuantity_TNE = (decimal) ladg.CargoGrossQuantity_TNE.Value; + rootLADG.Cargo[i].CargoGrossQuantity_TNE = Decimal.Round((decimal) ladg.CargoGrossQuantity_TNE.Value, 3); rootLADG.Cargo[i].CargoNumberOfItemsSpecified = ladg.CargoNumberOfItems.HasValue; if (ladg.CargoNumberOfItems.HasValue) rootLADG.Cargo[i].CargoNumberOfItems = ladg.CargoNumberOfItems.Value; @@ -631,7 +631,7 @@ namespace bsmd.dbh rootInfo.FumigatedBulkCargo = RootINFOFumigatedBulkCargo.N; rootInfo.DeadWeightSummer_TNESpecified = info.DeplacementSummerDraught_TNE.HasValue; if (info.DeplacementSummerDraught_TNE.HasValue) - rootInfo.DeadWeightSummer_TNE = (decimal) info.DeplacementSummerDraught_TNE.Value; + rootInfo.DeadWeightSummer_TNE = Decimal.Round((decimal) info.DeplacementSummerDraught_TNE.Value, 3); item = rootInfo; } break; @@ -673,13 +673,14 @@ namespace bsmd.dbh } if (pre72h.VolumeOfCargo.HasValue) - rootPre.TankerDetails.VolumeOfCargo_TNE = (decimal) (pre72h.VolumeOfCargo.Value); + rootPre.TankerDetails.VolumeOfCargo_TNE = Decimal.Round((decimal) (pre72h.VolumeOfCargo.Value), 3); rootPre.PlannedOperations = pre72h.PlannedOperations; rootPre.PlannedWorks = pre72h.PlannedWorks; + rootPre.DateOfLastExpandedInspectionSpecified = pre72h.DateOfLastExpandedInspection.HasValue; if (pre72h.DateOfLastExpandedInspection.HasValue) rootPre.DateOfLastExpandedInspection = pre72h.DateOfLastExpandedInspection.Value; if (pre72h.PlannedPeriodOfStay_HUR.HasValue) - rootPre.PlannedPeriodOfStay_HUR = (decimal) (pre72h.PlannedPeriodOfStay_HUR.Value); + rootPre.PlannedPeriodOfStay_HUR = Decimal.Round((decimal) (pre72h.PlannedPeriodOfStay_HUR.Value), 2); item = rootPre; } @@ -899,15 +900,15 @@ namespace bsmd.dbh if (was.Waste[j - 5].WasteType.HasValue) rww.WasteType = (WasteType) (was.Waste[j - 5].WasteType.Value - 1); // im generierten Code ist das 0-basiert if (was.Waste[j - 5].WasteDisposalAmount_MTQ.HasValue) - rww.WasteDisposalAmount_MTQ = (decimal)was.Waste[j - 5].WasteDisposalAmount_MTQ.Value; + rww.WasteDisposalAmount_MTQ = decimal.Round((decimal)was.Waste[j - 5].WasteDisposalAmount_MTQ.Value,3); rww.WasteDetails = new RootWASWasteWasteDetails(); if (was.Waste[j - 5].WasteCapacity_MTQ.HasValue) - rww.WasteDetails.WasteCapacity_MTQ = (decimal)was.Waste[j - 5].WasteCapacity_MTQ.Value; + rww.WasteDetails.WasteCapacity_MTQ = decimal.Round((decimal)was.Waste[j - 5].WasteCapacity_MTQ.Value,3); if (was.Waste[j - 5].WasteAmountRetained_MTQ.HasValue) - rww.WasteDetails.WasteAmountRetained_MTQ = (decimal)was.Waste[j - 5].WasteAmountRetained_MTQ.Value; + rww.WasteDetails.WasteAmountRetained_MTQ = decimal.Round((decimal)was.Waste[j - 5].WasteAmountRetained_MTQ.Value,3); rww.WasteDetails.WasteDisposalPort = was.Waste[j - 5].WasteDisposalPort; if (was.Waste[j - 5].WasteAmountGeneratedTillNextPort_MTQ.HasValue) - rww.WasteDetails.WasteAmountGeneratedTillNextPort_MTQ = (decimal)was.Waste[j - 5].WasteAmountGeneratedTillNextPort_MTQ.Value; + rww.WasteDetails.WasteAmountGeneratedTillNextPort_MTQ = decimal.Round((decimal)was.Waste[j - 5].WasteAmountGeneratedTillNextPort_MTQ.Value, 3); } } } @@ -941,12 +942,12 @@ namespace bsmd.dbh if (towa.TowageOnArrivalGrossTonnage.HasValue) rootTowa.TowageOnArrival[i].TowageOnArrivalGrossTonnage = towa.TowageOnArrivalGrossTonnage.Value; if (towa.TowageOnArrivalLengthOverall_MTR.HasValue) - rootTowa.TowageOnArrival[i].TowageOnArrivalLengthOverall_MTR = (decimal) towa.TowageOnArrivalLengthOverall_MTR.Value; + rootTowa.TowageOnArrival[i].TowageOnArrivalLengthOverall_MTR = decimal.Round((decimal) towa.TowageOnArrivalLengthOverall_MTR.Value, 2); if (towa.TowageOnArrivalBeam_MTR.HasValue) - rootTowa.TowageOnArrival[i].TowageOnArrivalBeam_MTR = (decimal) towa.TowageOnArrivalBeam_MTR.Value; + rootTowa.TowageOnArrival[i].TowageOnArrivalBeam_MTR = decimal.Round((decimal) towa.TowageOnArrivalBeam_MTR.Value, 2); rootTowa.TowageOnArrival[i].TowageOnArrivalPurposeOfCall = towa.TowageOnArrivalPurposeOfCall; if (towa.TowageOnArrivalDraught_DMT.HasValue) - rootTowa.TowageOnArrival[i].TowageOnArrivalDraught_DMT = (decimal) towa.TowageOnArrivalDraught_DMT.Value; + rootTowa.TowageOnArrival[i].TowageOnArrivalDraught_DMT = decimal.Round((decimal) towa.TowageOnArrivalDraught_DMT.Value, 1); rootTowa.TowageOnArrival[i].TowageOnArrivalRemarks = towa.TowageOnArrivalRemarks; } item = rootTowa; @@ -975,11 +976,11 @@ namespace bsmd.dbh rootTowd.TowageOnDeparture[i].TowageOnDepartureOperator.TowageOnDepartureOperatorFax = towd.TowageOnDepartureOperatorFax; rootTowd.TowageOnDeparture[i].TowageOnDepartureOperator.TowageOnDepartureOperatorEMail = towd.TowageOnDepartureOperatorEmail; if (towd.TowageOnDepartureLengthOverall_MTR.HasValue) - rootTowd.TowageOnDeparture[i].TowageOnDepartureLengthOverall_MTR = (decimal) towd.TowageOnDepartureLengthOverall_MTR.Value; + rootTowd.TowageOnDeparture[i].TowageOnDepartureLengthOverall_MTR = decimal.Round((decimal) towd.TowageOnDepartureLengthOverall_MTR.Value, 2); if (towd.TowageOnDepartureBeam_MTR.HasValue) - rootTowd.TowageOnDeparture[i].TowageOnDepartureBeam_MTR = (decimal) towd.TowageOnDepartureBeam_MTR.Value; + rootTowd.TowageOnDeparture[i].TowageOnDepartureBeam_MTR = decimal.Round((decimal) towd.TowageOnDepartureBeam_MTR.Value, 2); if (towd.TowageOnDepartureDraught_DMT.HasValue) - rootTowd.TowageOnDeparture[i].TowageOnDepartureDraught_DMT = (decimal) towd.TowageOnDepartureDraught_DMT.Value; + rootTowd.TowageOnDeparture[i].TowageOnDepartureDraught_DMT = decimal.Round((decimal) towd.TowageOnDepartureDraught_DMT.Value, 1); rootTowd.TowageOnDeparture[i].TowageOnDepartureRemarks = towd.TowageOnDepartureRemarks; } item = rootTowd; @@ -1033,27 +1034,27 @@ namespace bsmd.dbh rootIMDG.TechnicalName = imdgPos.TechnicalName; rootIMDG.NetExplosiveMass_KGMSpecified = imdgPos.NetExplosiveMass_KGM.HasValue; if (imdgPos.NetExplosiveMass_KGM.HasValue) - rootIMDG.NetExplosiveMass_KGM = (decimal)imdgPos.NetExplosiveMass_KGM.Value; + rootIMDG.NetExplosiveMass_KGM = decimal.Round((decimal)imdgPos.NetExplosiveMass_KGM.Value, 3); rootIMDG.Flashpoint_CEL = imdgPos.Flashpoint_CEL; rootIMDG.Class7NuclideName = imdgPos.Class7NuclideName; rootIMDG.Class7MaxActivity_BQLSpecified = imdgPos.Class7MaxActivity_BQL.HasValue; if (imdgPos.Class7MaxActivity_BQL.HasValue) - rootIMDG.Class7MaxActivity_BQL = (decimal)imdgPos.Class7MaxActivity_BQL.Value; + rootIMDG.Class7MaxActivity_BQL = decimal.Round((decimal)imdgPos.Class7MaxActivity_BQL.Value, 6); rootIMDG.Class7CategorySpecified = imdgPos.Class7Category.HasValue; if (imdgPos.Class7Category.HasValue) rootIMDG.Class7Category = imdgPos.Class7Category.Value; rootIMDG.Class7TransportIndexSpecified = imdgPos.Class7TransportIndex.HasValue; if (imdgPos.Class7TransportIndex.HasValue) - rootIMDG.Class7TransportIndex = (decimal)imdgPos.Class7TransportIndex.Value; + rootIMDG.Class7TransportIndex = decimal.Round((decimal)imdgPos.Class7TransportIndex.Value, 1); rootIMDG.Class7CSISpecified = imdgPos.Class7CSI.HasValue; if (imdgPos.Class7CSI.HasValue) rootIMDG.Class7CSI = imdgPos.Class7CSI.Value; rootIMDG.ControlTemperature_CELSpecified = imdgPos.ControlTemperature_CEL.HasValue; if (imdgPos.ControlTemperature_CEL.HasValue) - rootIMDG.ControlTemperature_CEL = (decimal)imdgPos.ControlTemperature_CEL.Value; + rootIMDG.ControlTemperature_CEL = decimal.Round((decimal)imdgPos.ControlTemperature_CEL.Value, 2); rootIMDG.EmergencyTemperature_CELSpecified = imdgPos.EmergencyTemperature_CEL.HasValue; if (imdgPos.EmergencyTemperature_CEL.HasValue) - rootIMDG.EmergencyTemperature_CEL = (decimal)imdgPos.EmergencyTemperature_CEL.Value; + rootIMDG.EmergencyTemperature_CEL = decimal.Round((decimal)imdgPos.EmergencyTemperature_CEL.Value, 2); if (imdgPos.SubsidiaryRiskList.Count > 0) { rootIMDG.SubsidiaryRisks = new string[imdgPos.SubsidiaryRiskList.Count]; @@ -1071,13 +1072,13 @@ namespace bsmd.dbh rootIMDG.ExceptedQuantities = imdgPos.ExceptedQuantities.Value ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N; rootIMDG.NetQuantity_KGMSpecified = imdgPos.NetQuantity_KGM.HasValue; if (imdgPos.NetQuantity_KGM.HasValue) - rootIMDG.NetQuantity_KGM = (decimal)imdgPos.NetQuantity_KGM.Value; + rootIMDG.NetQuantity_KGM = decimal.Round((decimal)imdgPos.NetQuantity_KGM.Value, 3); rootIMDG.GrossQuantity_KGMSpecified = imdgPos.GrossQuantity_KGM.HasValue; if (imdgPos.GrossQuantity_KGM.HasValue) - rootIMDG.GrossQuantity_KGM = (decimal)imdgPos.GrossQuantity_KGM.Value; + rootIMDG.GrossQuantity_KGM = decimal.Round((decimal)imdgPos.GrossQuantity_KGM.Value, 3); rootIMDG.Volume_MTQSpecified = imdgPos.Volume_MTQ.HasValue; if (imdgPos.Volume_MTQ.HasValue) - rootIMDG.Volume_MTQ = (decimal)imdgPos.Volume_MTQ.Value; + rootIMDG.Volume_MTQ = decimal.Round((decimal)imdgPos.Volume_MTQ.Value, 3); rootIMDG.GeneralCargoIBCSpecified = imdgPos.GeneralCargoIBC.HasValue; if (imdgPos.GeneralCargoIBC.HasValue) rootIMDG.GeneralCargoIBC = imdgPos.GeneralCargoIBC.Value ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N; @@ -1112,7 +1113,7 @@ namespace bsmd.dbh rootIBC.FlashpointInformation = (FlashpointInfoType)ibcPos.FlashpointInformation.Value; rootIBC.Flashpoint_CEL = ibcPos.Flashpoint_CEL; if (ibcPos.Quantity_KGM.HasValue) - rootIBC.Quantity_KGM = (decimal)ibcPos.Quantity_KGM.Value; + rootIBC.Quantity_KGM = decimal.Round((decimal)ibcPos.Quantity_KGM.Value, 3); rootIBC.StowagePosition = ibcPos.StowagePosition; rootIBC.PortOfLoading = ibcPos.PortOfLoading; rootIBC.PortOfDischarge = ibcPos.PortOfDischarge; @@ -1139,7 +1140,7 @@ namespace bsmd.dbh rootIGC.IMOClass = igcPos.IMOClass; rootIGC.ProductName = igcPos.ProductName; if (igcPos.Quantity_KGM.HasValue) - rootIGC.Quantity_KGM = (decimal)igcPos.Quantity_KGM.Value; + rootIGC.Quantity_KGM = decimal.Round((decimal)igcPos.Quantity_KGM.Value, 3); rootIGC.StowagePosition = igcPos.StowagePosition; rootIGC.PortOfLoading = igcPos.PortOfLoading; rootIGC.PortOfDischarge = igcPos.PortOfDischarge; @@ -1165,7 +1166,7 @@ namespace bsmd.dbh rootIMSBC.UNNumber = imsbcPos.UNNumber; rootIMSBC.IMOClass = imsbcPos.IMOClass; if (imsbcPos.Quantity_KGM.HasValue) - rootIMSBC.Quantity_KGM = (decimal)imsbcPos.Quantity_KGM.Value; + rootIMSBC.Quantity_KGM = decimal.Round((decimal)imsbcPos.Quantity_KGM.Value, 3); rootIMSBC.StowagePosition = imsbcPos.StowagePosition; rootIMSBC.PortOfLoading = imsbcPos.PortOfLoading; rootIMSBC.PortOfDischarge = imsbcPos.PortOfDischarge; @@ -1190,7 +1191,7 @@ namespace bsmd.dbh rootMarpol.FlashpointInformation = (FlashpointInfoType)marpolPos.FlashpointInformation.Value; rootMarpol.Flashpoint_CEL = marpolPos.Flashpoint_CEL; if (marpolPos.Quantity_KGM.HasValue) - rootMarpol.Quantity_KGM = (decimal)marpolPos.Quantity_KGM.Value; + rootMarpol.Quantity_KGM = decimal.Round((decimal)marpolPos.Quantity_KGM.Value, 3); rootMarpol.StowagePosition = marpolPos.StowagePosition; rootMarpol.PortOfLoading = marpolPos.PortOfLoading; rootMarpol.PortOfDischarge = marpolPos.PortOfDischarge; @@ -1266,27 +1267,27 @@ namespace bsmd.dbh rootIMDG.TechnicalName = imdgPos.TechnicalName; rootIMDG.NetExplosiveMass_KGMSpecified = imdgPos.NetExplosiveMass_KGM.HasValue; if (imdgPos.NetExplosiveMass_KGM.HasValue) - rootIMDG.NetExplosiveMass_KGM = (decimal)imdgPos.NetExplosiveMass_KGM.Value; + rootIMDG.NetExplosiveMass_KGM = decimal.Round((decimal)imdgPos.NetExplosiveMass_KGM.Value, 3); rootIMDG.Flashpoint_CEL = imdgPos.Flashpoint_CEL; rootIMDG.Class7NuclideName = imdgPos.Class7NuclideName; rootIMDG.Class7MaxActivity_BQLSpecified = imdgPos.Class7MaxActivity_BQL.HasValue; if (imdgPos.Class7MaxActivity_BQL.HasValue) - rootIMDG.Class7MaxActivity_BQL = (decimal)imdgPos.Class7MaxActivity_BQL.Value; + rootIMDG.Class7MaxActivity_BQL = decimal.Round((decimal)imdgPos.Class7MaxActivity_BQL.Value, 6); rootIMDG.Class7CategorySpecified = imdgPos.Class7Category.HasValue; if (imdgPos.Class7Category.HasValue) rootIMDG.Class7Category = imdgPos.Class7Category.Value; rootIMDG.Class7TransportIndexSpecified = imdgPos.Class7TransportIndex.HasValue; if (imdgPos.Class7TransportIndex.HasValue) - rootIMDG.Class7TransportIndex = (decimal)imdgPos.Class7TransportIndex.Value; + rootIMDG.Class7TransportIndex = decimal.Round((decimal)imdgPos.Class7TransportIndex.Value, 1); rootIMDG.Class7CSISpecified = imdgPos.Class7CSI.HasValue; if (imdgPos.Class7CSI.HasValue) rootIMDG.Class7CSI = imdgPos.Class7CSI.Value; rootIMDG.ControlTemperature_CELSpecified = imdgPos.ControlTemperature_CEL.HasValue; if (imdgPos.ControlTemperature_CEL.HasValue) - rootIMDG.ControlTemperature_CEL = (decimal)imdgPos.ControlTemperature_CEL.Value; + rootIMDG.ControlTemperature_CEL = decimal.Round((decimal)imdgPos.ControlTemperature_CEL.Value, 2); rootIMDG.EmergencyTemperature_CELSpecified = imdgPos.EmergencyTemperature_CEL.HasValue; if (imdgPos.EmergencyTemperature_CEL.HasValue) - rootIMDG.EmergencyTemperature_CEL = (decimal)imdgPos.EmergencyTemperature_CEL.Value; + rootIMDG.EmergencyTemperature_CEL = decimal.Round((decimal)imdgPos.EmergencyTemperature_CEL.Value, 2); if (imdgPos.SubsidiaryRiskList.Count > 0) { rootIMDG.SubsidiaryRisks = new string[imdgPos.SubsidiaryRiskList.Count]; @@ -1304,13 +1305,13 @@ namespace bsmd.dbh rootIMDG.ExceptedQuantities = imdgPos.ExceptedQuantities.Value ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N; rootIMDG.NetQuantity_KGMSpecified = imdgPos.NetQuantity_KGM.HasValue; if (imdgPos.NetQuantity_KGM.HasValue) - rootIMDG.NetQuantity_KGM = (decimal)imdgPos.NetQuantity_KGM.Value; + rootIMDG.NetQuantity_KGM = decimal.Round((decimal)imdgPos.NetQuantity_KGM.Value, 3); rootIMDG.GrossQuantity_KGMSpecified = imdgPos.GrossQuantity_KGM.HasValue; if (imdgPos.GrossQuantity_KGM.HasValue) - rootIMDG.GrossQuantity_KGM = (decimal)imdgPos.GrossQuantity_KGM.Value; + rootIMDG.GrossQuantity_KGM = decimal.Round((decimal)imdgPos.GrossQuantity_KGM.Value, 3); rootIMDG.Volume_MTQSpecified = imdgPos.Volume_MTQ.HasValue; if (imdgPos.Volume_MTQ.HasValue) - rootIMDG.Volume_MTQ = (decimal)imdgPos.Volume_MTQ.Value; + rootIMDG.Volume_MTQ = decimal.Round((decimal)imdgPos.Volume_MTQ.Value, 3); rootIMDG.GeneralCargoIBCSpecified = imdgPos.GeneralCargoIBC.HasValue; if (imdgPos.GeneralCargoIBC.HasValue) rootIMDG.GeneralCargoIBC = imdgPos.GeneralCargoIBC.Value ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N; @@ -1345,7 +1346,7 @@ namespace bsmd.dbh rootIBC.FlashpointInformation = (FlashpointInfoType)ibcPos.FlashpointInformation.Value; rootIBC.Flashpoint_CEL = ibcPos.Flashpoint_CEL; if (ibcPos.Quantity_KGM.HasValue) - rootIBC.Quantity_KGM = (decimal) ibcPos.Quantity_KGM.Value; + rootIBC.Quantity_KGM = decimal.Round((decimal) ibcPos.Quantity_KGM.Value, 3); rootIBC.StowagePosition = ibcPos.StowagePosition; rootIBC.PortOfLoading = ibcPos.PortOfLoading; rootIBC.PortOfDischarge = ibcPos.PortOfDischarge; @@ -1372,7 +1373,7 @@ namespace bsmd.dbh rootIGC.IMOClass = igcPos.IMOClass; rootIGC.ProductName = igcPos.ProductName; if (igcPos.Quantity_KGM.HasValue) - rootIGC.Quantity_KGM = (decimal)igcPos.Quantity_KGM.Value; + rootIGC.Quantity_KGM = decimal.Round((decimal)igcPos.Quantity_KGM.Value, 3); rootIGC.StowagePosition = igcPos.StowagePosition; rootIGC.PortOfLoading = igcPos.PortOfLoading; rootIGC.PortOfDischarge = igcPos.PortOfDischarge; @@ -1398,7 +1399,7 @@ namespace bsmd.dbh rootIMSBC.UNNumber = imsbcPos.UNNumber; rootIMSBC.IMOClass = imsbcPos.IMOClass; if (imsbcPos.Quantity_KGM.HasValue) - rootIMSBC.Quantity_KGM = (decimal)imsbcPos.Quantity_KGM.Value; + rootIMSBC.Quantity_KGM = decimal.Round((decimal)imsbcPos.Quantity_KGM.Value, 3); rootIMSBC.StowagePosition = imsbcPos.StowagePosition; rootIMSBC.PortOfLoading = imsbcPos.PortOfLoading; rootIMSBC.PortOfDischarge = imsbcPos.PortOfDischarge; @@ -1423,7 +1424,7 @@ namespace bsmd.dbh rootMarpol.FlashpointInformation = (FlashpointInfoType) marpolPos.FlashpointInformation.Value; rootMarpol.Flashpoint_CEL = marpolPos.Flashpoint_CEL; if (marpolPos.Quantity_KGM.HasValue) - rootMarpol.Quantity_KGM = (decimal)marpolPos.Quantity_KGM.Value; + rootMarpol.Quantity_KGM = decimal.Round((decimal)marpolPos.Quantity_KGM.Value, 3); rootMarpol.StowagePosition = marpolPos.StowagePosition; rootMarpol.PortOfLoading = marpolPos.PortOfLoading; rootMarpol.PortOfDischarge = marpolPos.PortOfDischarge; diff --git a/nsw/Source/bsmd.herberg.FormService/Util.cs b/nsw/Source/bsmd.herberg.FormService/Util.cs index 68b007fa..98f59db9 100644 --- a/nsw/Source/bsmd.herberg.FormService/Util.cs +++ b/nsw/Source/bsmd.herberg.FormService/Util.cs @@ -1099,63 +1099,106 @@ namespace bsmd.herberg.FormService if (vDict.ContainsKey("WasteDisposalDelivery")) was.WasteDisposalDelivery = (byte) Enum.Parse(typeof(Enums.WasteDisposalDelivery), vDict["WasteDisposalDelivery"], true); if (vDict.ContainsKey("ConfirmationOfCorrectness")) was.ConfirmationOfCorrectness = vDict["ConfirmationOfCorrectness"].Equals("Y"); - // parse given waste - foreach(int key in nDict.Keys) { - Dictionary wDict = nDict[key]; - Waste waste = was.GetSublistElementWithIdentifier(key.ToString()) as Waste; - if (waste == null) + // parse given waste, depending on old (pre 3.0) or new (3.0) Style + + if (nDict.Keys.Count < 2) + { + for (int wCounter = 1; wCounter <= 9; wCounter++) { - foreach (Waste existingWaste in was.Waste) + string wda = string.Format("WasteDisposalAmount_MTQ{0}", wCounter); + string wc = string.Format("WasteCapacity_MTQ{0}", wCounter); + string war = string.Format("WasteAmountRetained_MTQ{0}", wCounter); + string wagtnp = string.Format("WasteAmountGeneratedTillNextPort_MTQ{0}", wCounter); + string wt = string.Format("WasteType{0}", wCounter); + string wdpc = string.Format("WasteDisposalPortCode{0}", wCounter); + string wdcc = string.Format("WasteDisposalCountryCode{0}", wCounter); + string wd = string.Format("WasteDescription{0}", wCounter); + + Waste waste = was.GetSublistElementWithIdentifier(wCounter.ToString()) as Waste; + if (waste == null) { - if (wDict.ContainsKey("WasteType") && - ((existingWaste.WasteType ?? 0) == (Enums.ParseWasteType(wDict["WasteType"]) ?? 0)) - ) - { - waste = existingWaste; - break; - } + waste = new Waste(); + waste.Identifier = wCounter.ToString(); + waste.WAS = was; + was.Waste.Add(waste); } - } - if (waste == null) - { - waste = new Waste(); - waste.Identifier = key.ToString(); - waste.WAS = was; - was.Waste.Add(waste); - } + waste.WasteType = (byte) wCounter; + if (vDict.ContainsKey(wda)) waste.WasteDisposalAmount_MTQ = Extensions.TryParseDouble(vDict[wda]); + if (vDict.ContainsKey(wc)) waste.WasteCapacity_MTQ = Extensions.TryParseDouble(vDict[wc]); + if (vDict.ContainsKey(war)) waste.WasteAmountRetained_MTQ = Extensions.TryParseDouble(vDict[war]); + if (vDict.ContainsKey(wagtnp)) waste.WasteAmountGeneratedTillNextPort_MTQ = Extensions.TryParseDouble(vDict[wagtnp]); + if ((vDict.ContainsKey(wdpc)) && (vDict.ContainsKey(wdcc))) waste.WasteDisposalPort = vDict[wdcc] + vDict[wdpc]; + if (vDict.ContainsKey(wd)) waste.WasteDescription = vDict[wd]; - if (wDict.ContainsKey("WasteAmountGeneratedTillNextPort_MTQ")) waste.WasteAmountGeneratedTillNextPort_MTQ = Extensions.TryParseDouble(wDict["WasteAmountGeneratedTillNextPort_MTQ"]); - if (wDict.ContainsKey("WasteAmountRetained_MTQ")) waste.WasteAmountRetained_MTQ = Extensions.TryParseDouble(wDict["WasteAmountRetained_MTQ"]); - if (wDict.ContainsKey("WasteCapacity_MTQ")) waste.WasteCapacity_MTQ = Extensions.TryParseDouble(wDict["WasteCapacity_MTQ"]); - if (wDict.ContainsKey("WasteDisposalAmount_MTQ")) waste.WasteDisposalAmount_MTQ = Extensions.TryParseDouble(wDict["WasteDisposalAmount_MTQ"]); - if (wDict.ContainsKey("WasteDescription")) waste.WasteDescription = wDict["WasteDescription"]; - if (wDict.ContainsKey("WasteType")) waste.WasteType = Enums.ParseWasteType(wDict["WasteType"]); - if (wDict.ContainsKey("WasteDisposalCountryCode") && wDict.ContainsKey("WasteDisposalPortCode")) - waste.WasteDisposalPort = wDict["WasteDisposalCountryCode"] + wDict["WasteDisposalPortCode"]; + if (!waste.WasteDisposalPort.IsNullOrEmpty() && waste.WasteDisposalPort.Length > 5) + { + _log.WarnFormat("WasteDisposalPort format ERROR [{0}], truncating", was.LastWasteDisposalPort); + waste.WasteDisposalPort = waste.WasteDisposalPort.Substring(0, 5); + } - // Wenn das Feld leer ist mit "-" entwerten - if (((waste.WasteType ?? 0) == 3) && waste.WasteDescription.IsNullOrEmpty()) - waste.WasteDescription = "-"; - if (((waste.WasteType ?? 0) == 8) && waste.WasteDescription.IsNullOrEmpty()) - waste.WasteDescription = "-"; - if (((waste.WasteType ?? 0) == 9) && waste.WasteDescription.IsNullOrEmpty()) - waste.WasteDescription = "-"; - - if(!waste.WasteDisposalPort.IsNullOrEmpty() && waste.WasteDisposalPort.Length > 5) - { - _log.WarnFormat("WasteDisposalPort format ERROR [{0}], truncating", was.LastWasteDisposalPort); - waste.WasteDisposalPort = waste.WasteDisposalPort.Substring(0, 5); - } - - if (waste.WasteType.HasValue) - { saveMessages.Add(waste); } - else + } + else { + foreach (int key in nDict.Keys) { - // wenn nichtmal der WasteType gesetzt ist verwenden wir lieber den default und speichern das nicht - was.Waste.Remove(waste); + Dictionary wDict = nDict[key]; + Waste waste = was.GetSublistElementWithIdentifier(key.ToString()) as Waste; + if (waste == null) + { + foreach (Waste existingWaste in was.Waste) + { + if (wDict.ContainsKey("WasteType") && + ((existingWaste.WasteType ?? 0) == (Enums.ParseWasteType(wDict["WasteType"]) ?? 0)) + ) + { + waste = existingWaste; + break; + } + } + } + + if (waste == null) + { + waste = new Waste(); + waste.Identifier = key.ToString(); + waste.WAS = was; + was.Waste.Add(waste); + } + + if (wDict.ContainsKey("WasteAmountGeneratedTillNextPort_MTQ")) waste.WasteAmountGeneratedTillNextPort_MTQ = Extensions.TryParseDouble(wDict["WasteAmountGeneratedTillNextPort_MTQ"]); + if (wDict.ContainsKey("WasteAmountRetained_MTQ")) waste.WasteAmountRetained_MTQ = Extensions.TryParseDouble(wDict["WasteAmountRetained_MTQ"]); + if (wDict.ContainsKey("WasteCapacity_MTQ")) waste.WasteCapacity_MTQ = Extensions.TryParseDouble(wDict["WasteCapacity_MTQ"]); + if (wDict.ContainsKey("WasteDisposalAmount_MTQ")) waste.WasteDisposalAmount_MTQ = Extensions.TryParseDouble(wDict["WasteDisposalAmount_MTQ"]); + if (wDict.ContainsKey("WasteDescription")) waste.WasteDescription = wDict["WasteDescription"]; + if (wDict.ContainsKey("WasteType")) waste.WasteType = Enums.ParseWasteType(wDict["WasteType"]); + if (wDict.ContainsKey("WasteDisposalCountryCode") && wDict.ContainsKey("WasteDisposalPortCode")) + waste.WasteDisposalPort = wDict["WasteDisposalCountryCode"] + wDict["WasteDisposalPortCode"]; + + // Wenn das Feld leer ist mit "-" entwerten + if (((waste.WasteType ?? 0) == 3) && waste.WasteDescription.IsNullOrEmpty()) + waste.WasteDescription = "-"; + if (((waste.WasteType ?? 0) == 8) && waste.WasteDescription.IsNullOrEmpty()) + waste.WasteDescription = "-"; + if (((waste.WasteType ?? 0) == 9) && waste.WasteDescription.IsNullOrEmpty()) + waste.WasteDescription = "-"; + + if (!waste.WasteDisposalPort.IsNullOrEmpty() && waste.WasteDisposalPort.Length > 5) + { + _log.WarnFormat("WasteDisposalPort format ERROR [{0}], truncating", was.LastWasteDisposalPort); + waste.WasteDisposalPort = waste.WasteDisposalPort.Substring(0, 5); + } + + if (waste.WasteType.HasValue) + { + saveMessages.Add(waste); + } + else + { + // wenn nichtmal der WasteType gesetzt ist verwenden wir lieber den default und speichern das nicht + was.Waste.Remove(waste); + } } } diff --git a/nsw/Source/bsmd.herberg.FormService/packages.config b/nsw/Source/bsmd.herberg.FormService/packages.config new file mode 100644 index 00000000..a51db168 --- /dev/null +++ b/nsw/Source/bsmd.herberg.FormService/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file