Beispiel #1
0
        /// <inheritdoc />
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            var formatter = values[0] as IQuantityFormatter;

            if (formatter == null)
            {
                return("first argument must be a IQuantityFormatter");
            }

            var row = values[0] as Row;

            if (row == null)
            {
                return("first argument must be a Row");
            }

            var oldValueStringFormat = row.OldValueStringFormat;

            if (!string.IsNullOrEmpty(oldValueStringFormat) &&
                FormatString.IsValidFormat(oldValueStringFormat, out var numberOfArguments, out var anyItemHasFormat))
            {
                if (numberOfArguments == 1 && anyItemHasFormat == false)
                {
                    var formattedValue = formatter.Format(row.OldValue as IQuantity);
                    return(string.Format(row.OldValueStringFormat, formattedValue));
                }

                return(string.Format(NumericBox.GetCulture(row), oldValueStringFormat, row.OldValue));
            }

            return(oldValueStringFormat);
        }
        public void IsValidFormatWithOutParams(string text, bool expected, int expectedIndex, bool?expectedFormat)
        {
            int  count;
            bool?anyItemHasFormat;

            Assert.AreEqual(expected, FormatString.IsValidFormat(text, out count, out anyItemHasFormat));
            Assert.AreEqual(expectedIndex, count);
            Assert.AreEqual(expectedFormat, anyItemHasFormat);
        }