Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

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

Merge branch 'amdm2/develop' into 'amdm2/develop'

change number of significant decimals in XML reports

See merge request !35
parents 78affabc 347b96af
No related branches found
No related tags found
No related merge requests found
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using TUGraz.VectoCommon.Models;
......@@ -33,44 +32,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
protected abstract IList<FormattedReportValue> GetCO2ResultEntries(Kilogram co2, Meter distance, Kilogram payload,
CubicMeter volume, double? passengers);
protected object[] Format3Significant1Decimal(ConvertedSI value)
{
return value.ValueAsUnit(3, 1);
}
protected object[] Format1Decimal(ConvertedSI value)
{
return value.ValueAsUnit(1);
}
protected object[] Format2Decimal(ConvertedSI value)
{
return value.ValueAsUnit(2);
}
}
public class FormattedReportValue
{
public ConvertedSI Value { get; }
protected Func<ConvertedSI, object[]> Formatter;
public FormattedReportValue(ConvertedSI value, Func<ConvertedSI, object[]> formatter = null)
{
Value = value;
Formatter = formatter ?? DefaultFormat;
}
public object[] GetElement()
{
return Formatter(Value);
}
protected object[] DefaultFormat(ConvertedSI value)
{
return Value.ValueAsUnit(3, 1);
}
}
......@@ -84,7 +47,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
var retVal = new List<FormattedReportValue>() {
new FormattedReportValue((CO2Total / distance).ConvertToGrammPerKiloMeter()),
new FormattedReportValue((CO2Total / distance / payload).ConvertToGrammPerTonKilometer(), Format1Decimal),
new FormattedReportValue((CO2Total / distance / payload).ConvertToGrammPerTonKilometer(), FormattedReportValue.Format1Decimal),
};
if (volume.IsGreater(0)) {
retVal.Add(new FormattedReportValue((CO2Total / distance / volume).ConvertToGrammPerCubicMeterKiloMeter()));
......@@ -103,7 +66,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new[] {
new FormattedReportValue((CO2Total / distance).ConvertToGrammPerKiloMeter()),
new FormattedReportValue((CO2Total / distance / passengers.Value).ConvertToGrammPerPassengerKilometer(), Format2Decimal),
new FormattedReportValue((CO2Total / distance / passengers.Value).ConvertToGrammPerPassengerKilometer(), FormattedReportValue.Format2Decimal),
};
}
......@@ -127,7 +90,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, entry.AuxHeaterFuel.FuelType.ToXMLFormat()),
tmp?.GetFuelConsumptionEntries(entry.ZEV_FuelConsumption_AuxHtr, entry.AuxHeaterFuel, entry.Distance,
entry.Payload, entry.CargoVolume, entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, new FormattedReportValue(x).GetElement()))
),
new XElement(TNS + XMLNames.Report_ResultEntry_CO2ZEVAuxHeater,
GetCO2ResultEntries(entry.ZEV_CO2, entry.Distance, entry.Payload, entry.CargoVolume,
......@@ -149,7 +112,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, entry.AuxHeaterFuel.FuelType.ToXMLFormat()),
tmp?.GetFuelConsumptionEntries(entry.ZEV_FuelConsumption_AuxHtr, entry.AuxHeaterFuel, entry.Distance,
entry.Payload, entry.CargoVolume, entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, new FormattedReportValue(x).GetElement()))
),
new XElement(TNS + XMLNames.Report_ResultEntry_CO2ZEVAuxHeater,
GetCO2ResultEntries(entry.ZEV_CO2, entry.Distance, entry.Payload, entry.CargoVolume,
......
......@@ -19,7 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
return new XElement(TNS + ElectricEnergyConsumptionXMLElementName,
GetEnergyConsumption(entry.ElectricEnergyConsumption, entry.Distance, entry.Payload, entry.CargoVolume,
entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......@@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
return new XElement(TNS + ElectricEnergyConsumptionXMLElementName,
GetEnergyConsumption(weighted.ElectricEnergyConsumption, weighted.Distance, weighted.Payload, weighted.CargoVolume,
weighted.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......
using System;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
public class FormattedReportValue
{
public ConvertedSI Value { get; }
protected Func<ConvertedSI, object[]> Formatter;
public FormattedReportValue(ConvertedSI value, Func<ConvertedSI, object[]> formatter = null)
{
Value = value;
Formatter = formatter ?? DefaultFormat;
}
public object[] GetElement()
{
return Formatter(Value);
}
protected object[] DefaultFormat(ConvertedSI value)
{
return Value.ValueAsUnit(4, 1);
}
public static object[] Format1Decimal(ConvertedSI value)
{
return value.ValueAsUnit(1);
}
public static object[] Format2Decimal(ConvertedSI value)
{
return value.ValueAsUnit(2);
}
}
}
\ No newline at end of file
......@@ -32,7 +32,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new XElement(TNS + XMLNames.Report_Results_Fuel,
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fuel.FuelType.ToXMLFormat()),
GetFuelConsumptionEntries(consumption, fuel, distance, payLoad, cargoVolume, passengerCount).Select(x => new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
GetFuelConsumptionEntries(consumption, fuel, distance, payLoad, cargoVolume, passengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, new FormattedReportValue(x).GetElement()))
);
}
......
......@@ -95,11 +95,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new[] {
new XElement(TNS + XMLNames.Report_ResultEntry_ActualChargeDepletingRange,
XMLHelper.ValueAsUnit(result.ActualChargeDepletingRange.ConvertToKiloMeter())),
result.ActualChargeDepletingRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_EquivalentAllElectricRange,
XMLHelper.ValueAsUnit(result.EquivalentAllElectricRange.ConvertToKiloMeter())),
result.EquivalentAllElectricRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_ZeroCO2EmissionsRange,
XMLHelper.ValueAsUnit(result.ZeroCO2EmissionsRange.ConvertToKiloMeter())),
result.ZeroCO2EmissionsRange.ConvertToKiloMeter().ValueAsUnit()),
};
}
......@@ -107,11 +107,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new[] {
new XElement(TNS + XMLNames.Report_ResultEntry_ActualChargeDepletingRange,
XMLHelper.ValueAsUnit(weightedResult.ActualChargeDepletingRange.ConvertToKiloMeter())),
weightedResult.ActualChargeDepletingRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_EquivalentAllElectricRange,
XMLHelper.ValueAsUnit(weightedResult.EquivalentAllElectricRange.ConvertToKiloMeter())),
weightedResult.EquivalentAllElectricRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_ZeroCO2EmissionsRange,
XMLHelper.ValueAsUnit(weightedResult.ZeroCO2EmissionsRange.ConvertToKiloMeter())),
weightedResult.ZeroCO2EmissionsRange.ConvertToKiloMeter().ValueAsUnit()),
};
}
......
......@@ -121,7 +121,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fc.Fuel.FuelType.ToXMLFormat()),
GetFuelConsumptionEntries(fc.TotalFuelConsumptionCorrected, fc.Fuel, entry.Distance, entry.Payload,
entry.CargoVolume, entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......@@ -131,7 +131,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fuel.FuelType.ToXMLFormat()),
GetFuelConsumptionEntries(consumption, fuel, entry.Distance, entry.Payload, entry.CargoVolume,
entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment