From 3a1836ef8406f6fef25214ddb7d81dd463b6e6cd Mon Sep 17 00:00:00 2001 From: "DESKTOP-T0O5CDB\\DESK-555BD" Date: Wed, 31 Jan 2024 17:43:38 -0700 Subject: [PATCH] fix user preferrred unit in vehicle consolidated report. --- Controllers/VehicleController.cs | 15 ++++++++++++++- Helper/StaticHelper.cs | 23 +++++++++++++++++++++++ Views/Vehicle/_VehicleHistory.cshtml | 24 +----------------------- 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index 5a377c0..7665271 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -1083,6 +1083,7 @@ namespace CarCareTracker.Controllers var gasRecords = _gasRecordDataAccess.GetGasRecordsByVehicleId(vehicleId); bool useMPG = _config.GetUserConfig(User).UseMPG; bool useUKMPG = _config.GetUserConfig(User).UseUKMPG; + string preferredFuelMileageUnit = _config.GetUserConfig(User).PreferredGasMileageUnit; vehicleHistory.TotalGasCost = gasRecords.Sum(x => x.Cost); vehicleHistory.TotalCost = serviceRecords.Sum(x => x.Cost) + repairRecords.Sum(x => x.Cost) + upgradeRecords.Sum(x => x.Cost) + taxRecords.Sum(x => x.Cost); var averageMPG = "0"; @@ -1091,7 +1092,19 @@ namespace CarCareTracker.Controllers { averageMPG = _gasHelper.GetAverageGasMileage(gasViewModels, useMPG); } - vehicleHistory.MPG = averageMPG; + var fuelEconomyMileageUnit = StaticHelper.GetFuelEconomyUnit(vehicleHistory.VehicleData.IsElectric, vehicleHistory.VehicleData.UseHours, useMPG, useUKMPG); + if (fuelEconomyMileageUnit == "l/100km" && preferredFuelMileageUnit == "km/l") + { + //conversion needed. + var newAverageMPG = decimal.Parse(averageMPG, NumberStyles.Any); + if (newAverageMPG != 0) + { + newAverageMPG = 100 / newAverageMPG; + } + averageMPG = newAverageMPG.ToString("F"); + fuelEconomyMileageUnit = preferredFuelMileageUnit; + } + vehicleHistory.MPG = $"{averageMPG} {fuelEconomyMileageUnit}"; //insert servicerecords reportData.AddRange(serviceRecords.Select(x => new GenericReportModel { diff --git a/Helper/StaticHelper.cs b/Helper/StaticHelper.cs index 4478625..297ba17 100644 --- a/Helper/StaticHelper.cs +++ b/Helper/StaticHelper.cs @@ -140,5 +140,28 @@ namespace CarCareTracker.Helper Notes = input.Notes }; } + + public static string GetFuelEconomyUnit(bool useKwh, bool useHours, bool useMPG, bool useUKMPG) + { + string fuelEconomyUnit; + if (useKwh) + { + var distanceUnit = useHours ? "h" : (useMPG ? "mi." : "km"); + fuelEconomyUnit = useMPG ? $"{distanceUnit}/kWh" : $"kWh/100{distanceUnit}"; + } + else if (useMPG && useUKMPG) + { + fuelEconomyUnit = useHours ? "h/g" : "mpg"; + } + else if (useUKMPG) + { + fuelEconomyUnit = useHours ? "l/100h" : "l/100mi."; + } + else + { + fuelEconomyUnit = useHours ? (useMPG ? "h/g" : "l/100h") : (useMPG ? "mpg" : "l/100km"); + } + return fuelEconomyUnit; + } } } diff --git a/Views/Vehicle/_VehicleHistory.cshtml b/Views/Vehicle/_VehicleHistory.cshtml index 2187cf1..8c1bf26 100644 --- a/Views/Vehicle/_VehicleHistory.cshtml +++ b/Views/Vehicle/_VehicleHistory.cshtml @@ -2,28 +2,6 @@ @inject IConfigHelper config @{ var hideZero = config.GetUserConfig(User).HideZero; - var useMPG = config.GetUserConfig(User).UseMPG; - var useUKMPG = config.GetUserConfig(User).UseUKMPG; - var useKwh = Model.VehicleData.IsElectric; - var useHours = Model.VehicleData.UseHours; - string fuelEconomyUnit; - if (useKwh) - { - var distanceUnit = useHours ? "h" : (useMPG ? "mi." : "km"); - fuelEconomyUnit = useMPG ? $"{distanceUnit}/kWh" : $"kWh/100{distanceUnit}"; - } - else if (useMPG && useUKMPG) - { - fuelEconomyUnit = useHours ? "h/g" : "mpg"; - } - else if (useUKMPG) - { - fuelEconomyUnit = useHours ? "l/100h" : "l/100mi."; - } - else - { - fuelEconomyUnit = useHours ? (useMPG ? "h/g" : "l/100h") : (useMPG ? "mpg" : "l/100km"); - } } @model VehicleHistoryViewModel
@@ -58,7 +36,7 @@
  • Last Reported Odometer Reading: @Model.Odometer
  • -
  • Average Fuel Economy: @($"{Model.MPG} {fuelEconomyUnit}")
  • +
  • Average Fuel Economy: @($"{Model.MPG}")
  • Total Spent(excl. fuel): @Model.TotalCost.ToString("C")
  • Total Spent on Fuel: @Model.TotalGasCost.ToString("C")