internal static SPRoleDefinition AddRoleDefinition(SPRoleDefinitionCollection roles, string name, string description, SPBasePermissions permissions, int order)
        {
            SPRoleDefinition role = null;

            try
            {
                role = roles[name];
                role.BasePermissions = permissions;
                role.Description     = description;
                role.Order           = order;
            }
            catch (SPException exception)
            {
                if (-2146232832 != exception.ErrorCode)
                {
                    throw;
                }
                role                 = new SPRoleDefinition();
                role.Name            = name;
                role.Description     = description;
                role.BasePermissions = permissions;
                role.Order           = order;
                roles.Add(role);
                role = roles[name];
            }
            return(role);
        }
        public void Add(SPRoleDefinitionInstance role)
        {
            if (role == null)
            {
                return;
            }

            m_roleDefinitionCollection.Add(role.RoleDefinition);
        }