public static void AddRoleAssignment(SecurableObject securableObject, ClientContext context, SPDGPrincipal principal, IEnumerable<SPDGRoleDefinition> roleDefinitions)
{
Principal p;
if (principal is SPDGClientUser)
{
p = ((SPDGClientUser)principal).User;
}
else
{
p = ((SPDGClientGroup)principal).Group;
}
var roleDefinitionBindingCollection = new RoleDefinitionBindingCollection(context);
foreach (var spdgRoleDefinition in roleDefinitions)
{
roleDefinitionBindingCollection.Add(((SPDGClientRoleDefinition)spdgRoleDefinition).Definition);
}
securableObject.RoleAssignments.Add(p, roleDefinitionBindingCollection);
context.ExecuteQuery();
}