using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.cms.helpers
{
public class Casing
{
private const string ValidCharacters = "_-abcdefghijklmnopqrstuvwxyz";
///
/// A helper method to ensure that an Alias string doesn't contains any illegal characters
/// which is defined in a private constant 'ValidCharacters' in this class.
/// Conventions over configuration, baby. You can't touch this - MC Hammer!
///
/// The alias.
/// An alias guaranteed not to contain illegal characters
public static string SafeAlias(string alias)
{
StringBuilder safeString = new StringBuilder();
int aliasLength = alias.Length;
for (int i = 0; i < aliasLength;i++ )
{
string currentChar = alias.Substring(i, 1);
if (ValidCharacters.Contains(currentChar.ToLower()))
{
// check for camel (if next character is a space, we'll upper case the current one
if (i < aliasLength-1 && alias.Substring(i + 1, 1) == " ")
currentChar = currentChar.ToUpper();
safeString.Append(currentChar);
}
}
return safeString.ToString();
}
}
}