Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 79d6784b authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

refactoring lookup method for vehicle group based on input, return tuple of...

refactoring lookup method for vehicle group based on input, return tuple of vehicle group and vocational for report
parent 4841c5a3
No related branches found
No related tags found
No related merge requests found
......@@ -151,26 +151,35 @@ namespace TUGraz.VectoCore.Models.Declaration
grossVehicleWeight - curbWeight).Value() / 100, 0) * 100).SI<Kilogram>();
}
public static VehicleClass GetVehicleGroupGroup(IVehicleDeclarationInputData vehicleData)
public static Tuple<VehicleClass, bool?> GetVehicleGroupGroup(IVehicleDeclarationInputData vehicleData)
{
switch (vehicleData.VehicleCategory) {
case VehicleCategory.Van:
case VehicleCategory.RigidTruck:
case VehicleCategory.Tractor:
var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory,
vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating, vehicleData.CurbMassChassis,
vehicleData.VocationalVehicle);
return truckSegment.VehicleClass;
try {
var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory,
vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating,
vehicleData.CurbMassChassis,
vehicleData.VocationalVehicle);
return Tuple.Create(truckSegment.VehicleClass, (bool?)false);
} catch (VectoException) {
var truckSegment = DeclarationData.TruckSegments.Lookup(vehicleData.VehicleCategory,
vehicleData.AxleConfiguration, vehicleData.GrossVehicleMassRating,
vehicleData.CurbMassChassis,
false);
return Tuple.Create(truckSegment.VehicleClass, (bool?)false);
}
case VehicleCategory.HeavyBusPrimaryVehicle:
var primarySegment = DeclarationData.PrimaryBusSegments.Lookup(vehicleData.VehicleCategory,
vehicleData.AxleConfiguration, vehicleData.Articulated);
return primarySegment.VehicleClass;
return Tuple.Create(primarySegment.VehicleClass, (bool?)null);
case VehicleCategory.HeavyBusCompletedVehicle:
var segment = DeclarationData.CompletedBusSegments.Lookup(vehicleData.AxleConfiguration.NumAxles(),
vehicleData.VehicleCode,
vehicleData.RegisteredClass, vehicleData.NumberPassengerSeatsLowerDeck, vehicleData.Height,
vehicleData.LowEntry);
return segment.VehicleClass;
return Tuple.Create(segment.VehicleClass, (bool?)null);
}
throw new VectoException("No Group found for vehicle");
......@@ -189,7 +198,7 @@ namespace TUGraz.VectoCore.Models.Declaration
.Sum(x => x.ElectricMachine.R85RatedPower * x.Count) ?? 0.SI<Watt>()) +
(vehicleData.Components?.IEPC?.R85RatedPower ?? 0.SI<Watt>()) +
(vehicleData.MaxNetPower1 ?? 0.SI<Watt>());
var co2Group = WeightingGroup.Lookup(vehicleGroup, vehicleData.SleeperCab ?? false, propulsionPower);
var co2Group = WeightingGroup.Lookup(vehicleGroup.Item1, vehicleData.SleeperCab ?? false, propulsionPower);
return co2Group;
default:
return Declaration.WeightingGroup.Unknown;
......@@ -1402,7 +1411,7 @@ namespace TUGraz.VectoCore.Models.Declaration
}
return new WeightedResult(first) {
AverageSpeed = first.AverageSpeed,
FuelConsumption = first.FuelData.Select(x => Tuple.Create(x,
FuelConsumption = first.FuelData?.Select(x => Tuple.Create(x,
first.FuelConsumptionFinal(x.FuelType).TotalFuelConsumptionCorrected))
.ToDictionary(x => x.Item1, x => x.Item2),
ElectricEnergyConsumption = first.ElectricEnergyConsumption,
......
......@@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()),
new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()),
new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(vehicleData.GrossVehicleMassRating, "kg")),
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()),
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).Item1.GetClassNumber()),
new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
};
......@@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
new XElement(_cif + XMLNames.Vehicle_VehicleCategory, consolidatedVehicleData.LegislativeClass.ToXMLFormat()),
new XElement(_cif + XMLNames.Vehicle_AxleConfiguration, primary.AxleConfiguration.ToXMLFormat()),
new XElement(_cif + XMLNames.Vehicle_TPMLM, XMLHelper.ValueAsUnit(consolidatedVehicleData.GrossVehicleMassRating, "kg")),
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).GetClassNumber()),
new XElement(_cif + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(consolidatedVehicleData).Item1.GetClassNumber()),
new XElement(_cif + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(multiStageInputDataProvider).ToXMLFormat()),
};
return result;
......@@ -77,6 +77,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
{
var vehicleData = inputData.JobInputData.Vehicle;
var vehicleGroup = DeclarationData.GetVehicleGroupGroup(vehicleData);
var result = new List<XElement>() {
new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer),
new XElement(_cif + XMLNames.Component_ManufacturerAddress, vehicleData.ManufacturerAddress),
......@@ -88,7 +89,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation
// ? vehicleData.VehicleTypeApprovalNumber
// : null),
new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ValueAsUnit("kg")),
new XElement(_cif + XMLNames.Vehicle_VocationalVehicle, vehicleData.VocationalVehicle),
new XElement(_cif + XMLNames.Vehicle_VocationalVehicle, vehicleGroup.Item2),
new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab),
new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle),
new XElement(_cif + XMLNames.Vehicle_HybridElectricHDV, vehicleData.HybridElectricHDV)
......
......@@ -37,7 +37,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
new XElement(_mrf + XMLNames.Vehicle_VehicleCategory, vehicleData.LegislativeClass.ToXMLFormat()),
new XElement(_mrf + XMLNames.Vehicle_AxleConfiguration, vehicleData.AxleConfiguration.ToXMLFormat()),
new XElement(_mrf + XMLNames.TPMLM, vehicleData.GrossVehicleMassRating.ToXMLFormat(0)),
new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).GetClassNumber()),
new XElement(_mrf + XMLNames.Report_Vehicle_VehicleGroup, DeclarationData.GetVehicleGroupGroup(vehicleData).Item1.GetClassNumber()),
new XElement(_mrf + "VehicleGroupCO2", DeclarationData.GetVehicleGroupCO2StandardsGroup(vehicleData).ToXMLFormat()),
};
......
......@@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Xml.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.ManufacturerReport_0_9.ManufacturerReportXMLTypeWriter;
using TUGraz.VectoCore.Utils;
......@@ -18,6 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
public override IList<XElement> GetElements(IDeclarationInputDataProvider inputData)
{
var vehicle = inputData.JobInputData.Vehicle;
var vehicleGoup = DeclarationData.GetVehicleGroupGroup(vehicle);
var elements = new List<XElement>();
elements.AddRange(new List<XElement>() {
new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer),
......@@ -27,7 +29,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport.
elements.AddRange(new List<XElement>() {
// new XElement(mrf + "CO2StandardGroup", vehicle.) //CO2 Standardgroup
new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ToXMLFormat(0)),
new XElement(_mrf + XMLNames.Vehicle_VocationalVehicle, vehicle.VocationalVehicle),
new XElement(_mrf + XMLNames.Vehicle_VocationalVehicle, vehicleGoup.Item2),
new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle),
new XElement(_mrf + XMLNames.Vehicle_HybridElectricHDV, vehicle.HybridElectricHDV),
});
......
......@@ -45,7 +45,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport
new XElement(tns + XMLNames.Vehicle_CurbMassChassis, XMLHelper.ValueAsUnit(modelData.VehicleData.CurbMass, XMLNames.Unit_kg)),
new XElement(tns + XMLNames.TPMLM,
XMLHelper.ValueAsUnit(modelData.VehicleData.GrossVehicleMass, XMLNames.Unit_t, 2)),
new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.ZeroEmissionVehicle),
//new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.ZeroEmissionVehicle),
new XElement(tns + XMLNames.Vehicle_ZeroEmissionVehicle, modelData.VehicleData.ZeroEmissionVehicle),
new XElement(tns + XMLNames.Vehicle_HybridElectricHDV, modelData.VehicleData.HybridElectricHDV),
new XElement(tns + XMLNames.Vehicle_DualFuelVehicle, modelData.VehicleData.DualFuelVehicle),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment