SP.Group group = web.SiteGroups.GetByName(siteName + " Owners");
foreach (User user in Users)
{
group.Users.AddUser(user);
}
group.Update();
context.Load(groupOwner, g => g.Id);
context.ExecuteQuery();
GID = groupOwner.Id.ToString();
var web = item.ParentList.ParentWeb;
var context = web.Context;
item.BreakRoleInheritance(true, false);
item.Update();
context.Load(item, i => i.RoleAssignments);
context.ExecuteQuery();
item.RoleAssignments.Where(c => c.PrincipalId.ToString() != GID).ToList().ForEach(ra => ra.DeleteObject());//empty permission
var collRoleDefinitionBinding = new RoleDefinitionBindingCollection(context);
var contributerDefinition = web.RoleDefinitions.GetByType(RoleType.Contributor);
collRoleDefinitionBinding.Add(contributerDefinition);
List<FieldUserValue> reviewers = new List<FieldUserValue>();
try
{
var user = web.EnsureUser(loginName);
item.RoleAssignments.Add(user, collRoleDefinitionBinding);
//Add conrribure permission for user
FieldUserValue userVal = FieldUserValue.FromUser(loginName);
reviewers.Add(userVal);
}
catch (Exception err)
{
Error("Add Reviwer Error:", err);
}
if (reviewers.Count > 0)
item["Reviewer"] = reviewers;
item.Update();
context.ExecuteQuery();