FlexFieldControlLib.FieldControl.GetCasedText C# (CSharp) Method

GetCasedText() private method

private GetCasedText ( ) : string
return string
        private string GetCasedText()
        {
            string text = Text;

             int value = _valueFormatter.Value( Text );

             string valueString = _valueFormatter.ValueText( value, CharacterCasing );

             int textIndex = 0;
             int valueStringIndex = 0;

             StringBuilder sb = new StringBuilder();

             bool nonZeroFound = false;

             bool zeroAppended = false;

             while ( ( textIndex < text.Length ) &&
                 ( valueStringIndex < valueString.Length ) )
             {
            if ( !nonZeroFound && text[textIndex] == '0' )
            {
               if ( LeadingZeros )
               {
                  sb.Append( '0' );
               }
               else if ( !zeroAppended && ( value == 0 ) )
               {
                  sb.Append( '0' );
                  zeroAppended = true;
               }

               ++textIndex;
            }
            else if ( text[textIndex] == valueString[valueStringIndex] )
            {
               sb.Append( valueString[valueStringIndex] );

               ++textIndex;
               ++valueStringIndex;

               nonZeroFound = true;
            }
            else if ( Char.IsUpper( text[textIndex] ) )
            {
               sb.Append( Char.ToUpper( valueString[valueStringIndex], CultureInfo.InvariantCulture ) );

               ++textIndex;
               ++valueStringIndex;

               nonZeroFound = true;
            }
            else
            {
               ++textIndex;
            }
             }

             return sb.ToString();
        }