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 f74ada0b authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

refactoring fuel entry to be accessed via ifuelproperties interface

parent f92b7b0a
Branches
Tags
No related merge requests found
......@@ -18,6 +18,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
JoulePerKilogramm LowerHeatingValueVectoEngine { get; }
double HeatingValueCorrection { get; }
double CO2PerFuelWeightVTP { get; }
string GetLabel();
}
......
......@@ -58,7 +58,7 @@ namespace TUGraz.VectoCore.Models.Declaration
protected override string ErrorMessage => "FuelType {0} {1} not found!";
public Entry Lookup(FuelType fuelType, TankSystem? tankSystem = null)
public IFuelProperties Lookup(FuelType fuelType, TankSystem? tankSystem = null)
{
var entries = _data.FindAll(x => x.FuelType == fuelType);
if (entries.Count == 0) {
......@@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Models.Declaration
return entries.First();
}
public static Entry Diesel => Instance().Lookup(FuelType.DieselCI);
public static IFuelProperties Diesel => Instance().Lookup(FuelType.DieselCI);
protected override void ParseData(DataTable table)
{
......
......@@ -192,22 +192,23 @@ namespace TUGraz.VectoCore.OutputData.XML
//Fuels
result.FuelData = specific.FuelData;
result.FuelData = primary.EnergyConsumption.Keys.Select(x =>
DeclarationData.FuelData.Lookup(x, specific.VectoRunData.VehicleData.InputData.TankSystem)).ToList(); //specific.FuelData;
var co2Sum = 0.SI<Kilogram>();
foreach (var fuel in generic.FuelData.Select(f => f.FuelType))
{
var fuel = specific.FuelData.First();
var fuelFactor = CalculateFactor(combinedResults, r => r.FuelConsumptionFinal(fuel.FuelType).TotalFuelConsumptionCorrected);
var fuelFactor = CalculateFactor(combinedResults, r => r.FuelConsumptionFinal(fuel).TotalFuelConsumptionCorrected);
var energyDemand =
fuelFactor * (primary.EnergyConsumption[fuel] * specific.Distance);
foreach (var entry in primary.EnergyConsumption)//generic.FuelData.Select(f => f.FuelType))
{
var energyDemand = fuelFactor * (entry.Value * specific.Distance);
var fuelConsumption = new CompletedBusFuelConsumption()
{
Fuel = specific.FuelData.Single(f => f.FuelType == fuel),
Fuel = DeclarationData.FuelData.Lookup(entry.Key, specific.VectoRunData.VehicleData.InputData.TankSystem), // specific.FuelData.Single(f => f.FuelType == fuel),
EnergyDemand = energyDemand,
};
co2Sum += fuelConsumption.TotalFuelConsumptionCorrected * fuelConsumption.Fuel.CO2PerFuelWeight;
result.CorrectedFinalFuelConsumption.Add(fuel, fuelConsumption);
result.CorrectedFinalFuelConsumption.Add(entry.Key, fuelConsumption);
}
result.CO2Total = co2Sum;
......
......@@ -58,7 +58,7 @@ public class SSMHeatingPostProcessingCorrection
"2500,0,3800\n" +
"2500,1000,32000\n";
protected static readonly FuelData.Entry Fuel = FuelData.Diesel;
protected static readonly IFuelProperties Fuel = FuelData.Diesel;
......
......@@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.Tests.Reports
"2500,0,3800\n" +
"2500,1000,32000\n";
protected static readonly FuelData.Entry Fuel = FuelData.Diesel;
protected static readonly IFuelProperties Fuel = FuelData.Diesel;
[OneTimeSetUp]
public void RunBeforeAnyTests()
......
......@@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Tests.Utils
IList<IFuelProperties> IModalDataContainer.FuelData => FuelColumns.Keys.ToList();
public FuelData.Entry FuelData => VectoCore.Models.Declaration.FuelData.Diesel;
public IFuelProperties FuelData => VectoCore.Models.Declaration.FuelData.Diesel;
public VectoRun.Status RunStatus => VectoRun.Status.Success;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment