public static void AddRoleAssignment(SPSecurableObject securableObject, SPDGPrincipal principal, IEnumerable<SPDGRoleDefinition> roleDefinitions)
{
SPPrincipal spPrincipal;
if (principal is SPDGServerUser)
{
spPrincipal = ((SPDGServerUser)principal).SPUser;
}
else
{
spPrincipal = ((SPDGServerGroup)principal).Group;
}
SPRoleAssignment roleAss = new SPRoleAssignment(spPrincipal);
foreach (var spdgRoleDefinition in roleDefinitions)
{
var spRoleDef = ((SPDGServerRoleDefinition)spdgRoleDefinition).RoleDefinition;
roleAss.RoleDefinitionBindings.Add(spRoleDef);
}
securableObject.RoleAssignments.Add(roleAss);
}