System.Xml.Xsl.XsltOld.NumberAction.NumberingFormat.FormatItem C# (CSharp) Method

FormatItem() private method

private FormatItem ( object value ) : String
value object
return String
            internal String FormatItem(object value) {
                double dblVal;

                if (value is int) {
                    dblVal = (int)value;
                } else {
                    dblVal = XmlConvert.ToXPathDouble(value);

                    if (0.5 <= dblVal && !double.IsPositiveInfinity(dblVal)) {
                        dblVal = XmlConvert.XPathRound(dblVal);
                    } else {
                        // It is an error if the number is NaN, infinite or less than 0.5; an XSLT processor may signal the error;
                        // if it does not signal the error, it must recover by converting the number to a string as if by a call
                        // to the string function and inserting the resulting string into the result tree.
                        return XmlConvert.ToXPathString(value);
                    }
                }

                Debug.Assert(dblVal >= 1);

                switch (seq) {
                case NumberingSequence.Arabic :
                    break;
                case NumberingSequence.UCLetter :
                case NumberingSequence.LCLetter :
                    if (dblVal <= MaxAlphabeticValue) {
                        StringBuilder sb = new StringBuilder();
                        ConvertToAlphabetic(sb, dblVal, seq == NumberingSequence.UCLetter ? 'A' : 'a', 26);
                        return sb.ToString();
                    }
                    break;
                case NumberingSequence.UCRoman :
                case NumberingSequence.LCRoman:
                    if (dblVal <= MaxRomanValue) {
                        StringBuilder sb = new StringBuilder();
                        ConvertToRoman(sb, dblVal, seq == NumberingSequence.UCRoman);
                        return sb.ToString();
                    }
                    break;
                }

                return ConvertToArabic(dblVal, cMinLen, sizeGroup, separator);
            }