Acceleratio.SPDG.Generator.Client.ClientRoleAssignmentHelper.AddRoleAssignment C# (CSharp) Method

AddRoleAssignment() public static method

public static AddRoleAssignment ( SecurableObject securableObject, ClientContext context, SPDGPrincipal principal, IEnumerable roleDefinitions ) : void
securableObject SecurableObject
context ClientContext
principal Acceleratio.SPDG.Generator.SPModel.SPDGPrincipal
roleDefinitions IEnumerable
return void
        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();
        }