Example #1
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            SupportedWeight expectedUnits = SupportedWeight.Kilogram;

            if (parameter is SupportedWeight supportedWeight)
            {
                expectedUnits = supportedWeight;
            }
            else if (parameter is string str)
            {
                if (Enum.TryParse <SupportedWeight>(str, out SupportedWeight supported))
                {
                    expectedUnits = supported;
                }
            }

            if (value is double weight)
            {
                if (!double.IsNaN(weight))
                {
                    return($"{weight} {shortHandNames[(int)expectedUnits]}");
                }
                else
                {
                    return($"{weight}");
                }
            }
            return(value);
            //throw new NotImplementedException();
        }
Example #2
0
        public static double ConvertWeight(double measurement, SupportedWeight supported, ConvertToWeight convertTo)
        {
            double result = double.NaN;

            if (!double.IsNaN(measurement))
            {
                switch (supported)
                {
                case SupportedWeight.Gram:
                    switch (convertTo)
                    {
                    case ConvertToWeight.Grams:
                        result = measurement;
                        break;

                    case ConvertToWeight.Millgrams:
                        result = measurement * 1000;
                        break;

                    case ConvertToWeight.Kilograms:
                        result = measurement * 1e-3;
                        break;

                    default:
                        System.Diagnostics.Debug.WriteLine($"{supported} is not supported.");
                        break;
                    }
                    break;

                case SupportedWeight.Kilogram:
                    switch (convertTo)
                    {
                    case ConvertToWeight.Grams:
                        result = measurement * 1000;
                        break;

                    case ConvertToWeight.Millgrams:
                        result = measurement * 1e6;
                        break;

                    case ConvertToWeight.Kilograms:
                        result = measurement;
                        break;

                    default:
                        System.Diagnostics.Debug.WriteLine($"{supported} is not supported.");
                        break;
                    }
                    break;

                case SupportedWeight.Ounce:
                    switch (convertTo)
                    {
                    case ConvertToWeight.Grams:
                        result = measurement * Constants.OunceToGram;
                        break;

                    case ConvertToWeight.Millgrams:
                        result = measurement * Constants.OunceToGram * 1000;
                        break;

                    case ConvertToWeight.Kilograms:
                        result = measurement * Constants.OunceToGram / 1000;
                        break;

                    default:
                        System.Diagnostics.Debug.WriteLine($"{supported} is not supported.");
                        break;
                    }
                    break;

                case SupportedWeight.Pound:
                    switch (convertTo)
                    {
                    case ConvertToWeight.Grams:
                        result = measurement * Constants.PoundToGram;
                        break;

                    case ConvertToWeight.Millgrams:
                        result = measurement * Constants.PoundToGram * 1000;
                        break;

                    case ConvertToWeight.Kilograms:
                        result = measurement * Constants.PoundToKg;
                        break;

                    default:
                        System.Diagnostics.Debug.WriteLine($"{supported} is not supported.");
                        break;
                    }
                    break;

                default:
                    break;
                }
                return(result);
            }
            return(measurement);
        }