Exemple #1
0
        /// <summary>Registers the unit.</summary>
        /// <param name="group">e.g. "length"</param>
        /// <param name="abbreviation">"ft"</param>
        /// <param name="unitsName">"feet"</param>
        /// <param name="conversionValue">12 as in how many base units it takes to get 1 of this unit.</param>
        public void RegisterUnit(string group, string abbreviation, string unitsName, double conversionValue)
        {
            UnitSubGroup unit = unit = new UnitSubGroup()
            {
                ShortName       = abbreviation,
                Name            = unitsName,
                Group           = group,
                ConversionValue = conversionValue
            };

            _subGroups[group + "_" + unitsName]    = unit;
            _subGroups[group + "_" + abbreviation] = unit;
            _subGroupsToGroupMap[unitsName]        = group;
            _subGroupsToGroupMap[abbreviation]     = group;
        }
Exemple #2
0
 /// <summary>Registers the unit.</summary>
 /// <param name="group">e.g. "length"</param>
 /// <param name="abbreviation">"ft"</param>
 /// <param name="unitsName">"feet"</param>
 /// <param name="conversionValue">12 as in how many base units it takes to get 1 of this unit.</param>
 public void RegisterUnit(string group, string abbreviation, string unitsName, double conversionValue)
 {
     UnitSubGroup unit = unit = new UnitSubGroup()
     {
         ShortName = abbreviation,
         Name = unitsName,
         Group = group,
         ConversionValue = conversionValue
     };
     _subGroups[group + "_" + unitsName] = unit;
     _subGroups[group + "_" + abbreviation] = unit;
     _subGroupsToGroupMap[unitsName] = group;
     _subGroupsToGroupMap[abbreviation] = group;
 }
Exemple #3
0
        /// <summary>
        /// Converts a baseunits value into the relative value. e.g. 60inches, "feet" returns 5
        /// </summary>
        /// <param name="sourceBaseUnits"></param>
        /// <param name="unitsName"></param>
        /// <param name="destUnits"></param>
        /// <returns></returns>
        public double ConvertToRelativeValue(double sourceBaseUnits, string unitsName, UnitSubGroup destUnits)
        {
            if(destUnits == null)
            {
                var group = _subGroupsToGroupMap[unitsName];
                destUnits = GetUnitsFor(group, unitsName);
            }

            // 2. Convert from base to destination
            // e.g. 60 inches to yards
            double destinationUnits = sourceBaseUnits;

            // "feet" to "yards"
            // feet 12 > 36
            if (destUnits.ConversionValue > 1)
                destinationUnits = sourceBaseUnits / destUnits.ConversionValue;

            // "yards" to "feet"
            // 12 < 36
            else if (destUnits.ConversionValue < 1)
                destinationUnits = sourceBaseUnits * destUnits.ConversionValue;

            return destinationUnits;
        }
Exemple #4
0
        /// <summary>
        /// Converts a baseunits value into the relative value. e.g. 60inches, "feet" returns 5
        /// </summary>
        /// <param name="sourceBaseUnits"></param>
        /// <param name="unitsName"></param>
        /// <param name="destUnits"></param>
        /// <returns></returns>
        public double ConvertToRelativeValue(double sourceBaseUnits, string unitsName, UnitSubGroup destUnits)
        {
            if (destUnits == null)
            {
                var group = _subGroupsToGroupMap[unitsName];
                destUnits = GetUnitsFor(group, unitsName);
            }

            // 2. Convert from base to destination
            // e.g. 60 inches to yards
            double destinationUnits = sourceBaseUnits;

            // "feet" to "yards"
            // feet 12 > 36
            if (destUnits.ConversionValue > 1)
            {
                destinationUnits = sourceBaseUnits / destUnits.ConversionValue;
            }

            // "yards" to "feet"
            // 12 < 36
            else if (destUnits.ConversionValue < 1)
            {
                destinationUnits = sourceBaseUnits * destUnits.ConversionValue;
            }

            return(destinationUnits);
        }