public string RenameFile(IFileMetaData FileName, int Position, NameExtensionHelper Helper) { Helper.Text = FileName.Name; string numberString; int num = Position + _start; // Format the position number into the correct format switch (_numberFormat) { case NumberingFormat.LowercaseLetters: numberString = StringNumberConversions.NumberToString(num); break; case NumberingFormat.OneZero: numberString = InsertZeros(num, 1); break; case NumberingFormat.TwoZeros: numberString = InsertZeros(num, 2); break; case NumberingFormat.ThreeZeros: numberString = InsertZeros(num, 3); break; case NumberingFormat.NoZeros: goto default; default: numberString = num.ToString(); break; } // This function determines the text format, we will pass it to modify in the NameExtensionHelper Func <String, String> _textFormatFn; switch (_textFormat) { case NumberingTextFormat.NumberText: _textFormatFn = (OldName) => numberString + _text; break; case NumberingTextFormat.NumberTextOldName: _textFormatFn = (OldName) => numberString + _text + OldName; break; case NumberingTextFormat.OldNameTextNumber: _textFormatFn = (OldName) => OldName + _text + numberString; break; case NumberingTextFormat.TextNumber: goto default; default: _textFormatFn = (OldName) => _text + numberString; break; } return(Helper.Modify(_textFormatFn)); }
// The start string is often a number, however for some alphabetic orderings // it is not a number. This method will convert the string to the correct number private void FixStartString() { // First try to parse start as an int. if (!Int32.TryParse(_startString, out _start)) { // if that fails, see if we are using the lowercase numbering format if (_numberFormat == NumberingFormat.LowercaseLetters) { _start = StringNumberConversions.StringToNumber(_startString); } else { // otherwise default to starting at 1 _start = 1; } } }