Microsoft.WindowsAzure.Commands.Utilities.CloudService.CloudServiceProject.GetRoleName C# (CSharp) Method

GetRoleName() private method

Creates a role name, ensuring it doesn't already exist. If null is passed in, a number will be appended to the defaultRoleName.
private GetRoleName ( string name, string defaultName, IEnumerable existingNames ) : string
name string
defaultName string
existingNames IEnumerable
return string
        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;
        }