public string Increment(string input) { if (String.IsNullOrWhiteSpace(input)) { throw new ArgumentNullException("Null input passed to AlphanumericIncrementor.Increment!"); } char[] charsToIncrement = _determinator.DetermineCharactersToIncrement(input); for (int i = 0; i < charsToIncrement.Length; i++) { Rule rule = _ruleFactory.GetIncrementRule(charsToIncrement[i]); charsToIncrement[i] = rule.Increment(charsToIncrement[i]); } return(_formatter.Format(input, charsToIncrement)); }