private string GetRoleName(string name, string defaultName, IEnumerable<string> existingNames)
{
if (!string.IsNullOrEmpty(name))
{
if (existingNames.Contains(name.ToLower()))
{
// Role does exist, user should pick a unique name
//
throw new ArgumentException(string.Format(Resources.AddRoleMessageRoleExists, name));
}
if (!ServiceComponents.ValidRoleName(name))
{
// The provided name is invalid role name
//
throw new ArgumentException(string.Format(Resources.InvalidRoleNameMessage, name));
}
}
if (name == null)
{
name = defaultName;
}
else
{
return name;
}
int index = 1;
string curName = name + index.ToString();
while (existingNames.Contains(curName.ToLower()))
{
curName = name + (++index).ToString();
}
return curName;
}