/// <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);
 }