/// <summary> /// Conversion of physical units /// </summary> /// <param name="alias">Alias</param> /// <param name="source">Source</param> /// <param name="target">Target</param> /// <returns>Conversion result</returns> public static Dictionary <string, double> ConvertPhysicalUnits (this IAlias alias, BaseTypes.Attributes.PhysicalUnitTypeAttribute source, BaseTypes.Attributes.PhysicalUnitTypeAttribute target) { Dictionary <string, double> d = new Dictionary <string, double>(); BaseTypes.Interfaces.IPhysicalUnitAlias a = alias as BaseTypes.Interfaces.IPhysicalUnitAlias; IList <string> l = alias.AliasNames; foreach (string key in l) { if (!l.Contains(key)) { continue; } object t = alias.GetType(key); if (!t.Equals(BaseTypes.FixedTypes.Double)) { continue; } double x = (double)alias[key]; Dictionary <Type, int> dt = a[key]; if (dt != null) { x *= BaseTypes.StaticExtensionBaseTypes.Coefficient(source, target, dt); } d[key] = x; } return(d); }
/// <summary> /// Conversion of physical units /// </summary> /// <param name="alias">Alias</param> /// <param name="source">Source</param> /// <param name="target">Target</param> public static void ConvertPhysicalUnitsAlias (this IAlias alias, BaseTypes.Attributes.PhysicalUnitTypeAttribute source, BaseTypes.Attributes.PhysicalUnitTypeAttribute target) { Dictionary <string, double> d = ConvertPhysicalUnits(alias, source, target); foreach (string key in d.Keys) { alias[key] = d[key]; } }