public static float GetLocalConsumptionValue(float originalValue, ConsumptionUnit originalUnit) { // Unit convertion multipliers. For the opposite convertion multiply with (1/multiplier). const float LITRE_TO_GALLON_UK_MULTIPLIER = 0.219969f; const float LITRE_TO_GALLON_US_MULTIPLIER = 0.264171f; const float GALLON_UK_TO_GALLON_US_MULTIPLIER = 1.20095f; const float KILOMETRE_TO_MILE_MULTIPLIER = 0.621371f; // The convertion comes in two steps. First, if we need to swap the form of the format // (ie FuelVolume/Distance <-> Distance/FuelVolume) do that. Then, we make any unit transformations // (ie between US, Imperial and Metric). float convertedValue = originalValue; if ((int)originalUnit % 3 - (int)ConsumptionUnit % 3 != 0) // The one needs to be 0,1,2 and the other 3,4,5 { convertedValue = 100 / convertedValue; } string[] unitCodes = new string[] { "METRIC", "US", "UK", "METRIC", "US", "UK" }; string unitStart = unitCodes[(int)originalUnit]; string unitFinal = unitCodes[(int)ConsumptionUnit]; if (unitStart == "METRIC") { if (unitFinal == "US") { convertedValue *= LITRE_TO_GALLON_US_MULTIPLIER / KILOMETRE_TO_MILE_MULTIPLIER; } else if (unitFinal == "UK") { convertedValue *= LITRE_TO_GALLON_UK_MULTIPLIER / KILOMETRE_TO_MILE_MULTIPLIER; } } else if (unitStart == "US") { if (unitFinal == "METRIC") { convertedValue *= KILOMETRE_TO_MILE_MULTIPLIER / LITRE_TO_GALLON_US_MULTIPLIER; } else if (unitFinal == "UK") { convertedValue *= 1 / GALLON_UK_TO_GALLON_US_MULTIPLIER; } } else if (unitStart == "UK") { if (unitFinal == "METRIC") { convertedValue *= KILOMETRE_TO_MILE_MULTIPLIER / LITRE_TO_GALLON_UK_MULTIPLIER; } else if (unitFinal == "US") { convertedValue *= GALLON_UK_TO_GALLON_US_MULTIPLIER; } } return((float)Math.Round(convertedValue, 2)); }
public IActionResult AddConsumptionUnit(ConsumptionUnit ConsumptionUnit) { if (ModelState.IsValid) { var postResult = Helper.PostValueToSevice <ConsumptionUnit>("POST", ConsumptionUnit); return(Json(new { success = postResult.result, message = postResult.message })); } return(Json(new { success = false, message = "Model Is Not Vald!" })); }
public IActionResult EditConsumptionUnit(long id, ConsumptionUnit ConsumptionUnit) { if (ModelState.IsValid) { ConsumptionUnit.State = BusinessEntity.Models.Base.Enums.ObjectState.Active; var postResult = Helper.PostValueToSevice <ConsumptionUnit>("PUT?id=" + ConsumptionUnit.Id.ToString(), ConsumptionUnit); return(Json(new { success = postResult.result, message = postResult.message })); } return(Json(new { success = false, message = "Model Is Not Valid!" })); }
public IActionResult DeleteConsumptionUnit(ConsumptionUnit ConsumptionUnit) { var postResult = Helper.PostValueToSevice <ConsumptionUnit>("Delete?id=" + ConsumptionUnit.Id.ToString(), ConsumptionUnit); return(Json(new { success = postResult.result, message = postResult.message })); }