private static void InitUnitlessConverters() { var converters = _mUnits.CreateOrGetUnitConverter(StockConverterName.Unitless.ToString()); var conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDataObject = new NdUnitAgConversionData(); conversionProvider.ConversionDataObject.ConversionFactor = 1D; converters.Add("Unitless", conversionProvider); }
private static void InitVolumetricFlowConverters() { var converters = _mUnits.CreateOrGetUnitConverter(StockConverterName.VolumetricFlow.ToString()); var conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDataObject = new NdUnitAgConversionData(); conversionProvider.ConversionDataObject.ConversionFactor = 1D; converters.Add(VolumetricFlowUnit.CubicMetersPerSecond.ToString(), conversionProvider); }
private static void InitAngleConverters() { var converters = _mUnits.CreateOrGetUnitConverter(StockConverterName.Direction.ToString()); var conversionProvider = new NdDualConversionProvider(); converters.Add("Radians", conversionProvider); conversionProvider.ConversionDelegate = new DummyRadiansConversionDelegate(); conversionProvider = new NdDualConversionProvider(); converters.Add("Degrees", conversionProvider); conversionProvider.ConversionDelegate = new DegreesRadiansConversionDelegate(); }
public void Populate(string unitOfMeasurementName, string[] units, double[] conversionFactors) { #region EvaluateBasicPopulationRules if (string.IsNullOrEmpty(unitOfMeasurementName)) { throw new Exception("Unit of measurement name must be set."); } if (units == null || conversionFactors == null) { throw new Exception("Either Units or ConversionFactors argument is not set."); } if (units.Length == 0 || conversionFactors.Length == 0) { throw new Exception("Units and ConversionFactors arguments must contain more than zero elements."); } if (units.Length != conversionFactors.Length) { throw new Exception("Units and ConversionFactors arguments must be the same length."); } if (conversionFactors[0] != 1D) { throw new Exception("First conversion factor for " + unitOfMeasurementName + " (" + units[0] + ") must be 1.0 and is " + conversionFactors[0] + "."); } #endregion var convertersForThisUnit = new UnitOfMeasurementConverters(); convertersForThisUnit.Name = unitOfMeasurementName; _mAgCollection.Add(unitOfMeasurementName, convertersForThisUnit); for (var index = 0; index < units.Length; index++) { var newNode = new NdUnitAgConversionData(); newNode.Name = units[index]; newNode.ConversionFactor = conversionFactors[index]; var conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDataObject = newNode; convertersForThisUnit.Add(newNode.Name, conversionProvider); } }
private static void InitSpecificEnergyConverters() { var converters = _mUnits.CreateOrGetUnitConverter(StockConverterName.SpecificEnergy.ToString()); var conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDataObject = new NdUnitAgConversionData(); conversionProvider.ConversionDataObject.ConversionFactor = 1D; // Base unit converters.Add(SpecificEnergyUnit.JouleKg.ToString(), conversionProvider); conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDataObject = new NdUnitAgConversionData(); conversionProvider.ConversionDataObject.ConversionFactor = 1000D; converters.Add(SpecificEnergyUnit.JouleG.ToString(), conversionProvider); conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDataObject = new NdUnitAgConversionData(); conversionProvider.ConversionDataObject.ConversionFactor = 1000000D; converters.Add(SpecificEnergyUnit.KjKg.ToString(), conversionProvider); }
private static void InitTemperatureConverters() { var converters = _mUnits.CreateOrGetUnitConverter(StockConverterName.Temperature.ToString()); var conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDelegate = new FhtToCelcConversion(); converters.Add("Fahrenheit", conversionProvider); conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDelegate = new AdditionBasedConversion(); ((AdditionBasedConversion)conversionProvider.ConversionDelegate).AdditionMember = 273.15; converters.Add("Kelvin", conversionProvider); conversionProvider = new NdDualConversionProvider(); conversionProvider.ConversionDelegate = null; conversionProvider.ConversionDataObject = new NdUnitAgConversionData(); conversionProvider.ConversionDataObject.ConversionFactor = 1; converters.Add("Celsius", conversionProvider); }