/// <summary> /// Calculates all measures. /// </summary> /// <param name="multiplier">The multiplier.</param> private void CalculateAllMeasures(KiloMultiplier multiplier) { var baseMeasure = units.First(x => { return x.Id == 1; }); foreach (var unit in units) { unit.Value = baseMeasure.Value / unit.CalculateFactor(multiplier); } }
/// <summary> /// Calculates the factor. /// </summary> /// <param name="unit">The unit.</param> /// <param name="multiplier">The multiplier.</param> /// <returns></returns> public static double CalculateFactor(this IUnit unit, KiloMultiplier multiplier) { int unitPowValue = (int)unit.Name; if (unitPowValue > 9) { unitPowValue = unitPowValue % 10; } int multiplierValue = (int)multiplier; double factor = Math.Pow(multiplierValue, unitPowValue) * (unit.isByte ? 8:1); return factor; }
private static IEnumerable<SelectListItem> GetKilo(KiloMultiplier selected = KiloMultiplier.k2) { IEnumerable<SelectListItem> kilo = new List<SelectListItem> { new SelectListItem(){Text=((int)KiloMultiplier.k2).ToString(), Value = ((int)KiloMultiplier.k2).ToString()}, new SelectListItem(){Text=((int)KiloMultiplier.k1).ToString(), Value = ((int)KiloMultiplier.k1).ToString()} }; kilo.First(x => { return x.Value == ((int)selected).ToString(); }).Selected = true; return kilo; }
/// <summary> /// Calculates the base measure. /// </summary> /// <param name="inputMeasure">The input measure.</param> /// <param name="multiplier">The multiplier.</param> private void CalculateBaseMeasure(IUnit inputMeasure, KiloMultiplier multiplier) { units.First(x => { return x.Id == 1; }).Value = inputMeasure.Value * inputMeasure.CalculateFactor(multiplier); }
public MeasuresCalculator(IUnit inputMeasure, KiloMultiplier multiplier) { this.multiplier = multiplier; CalculateBaseMeasure(inputMeasure, multiplier); CalculateAllMeasures(multiplier); }