2016-11-15 2 views
0

Ich konvertiere Event-Empfänger-Codes in Remote-Event-Empfänger mit SharePoint 2013 Client-Kontext. Ich muss Listenelemente mit eindeutigen Berechtigungen erhalten zählen zu validieren, während neues Dokument in bestimmten WebsitesammlungenWas ist die beste Methode zum Abrufen von GetItemsWithUniquePermissions von SharePoint 2013 mit Clientkontext (CSOM)?

Schaffung Es ist möglich, Sharepoint-Objektmodell verwendet

SP.List.GetItemsWithUniquePermissions().Count() 

ich die unten Logik geschrieben Listenelemente mit eindeutigen Berechtigungen zu erhalten Zählen in CSOM, aber es wirft Zeitüberschreitungs Ausnahme

var items = list.GetItems(CamlQuery.CreateAllItemsQuery()); 
      ctx.Load(items, icol => icol.Include(i => i.RoleAssignments.Include(ra => ra.Member), i => i.DisplayName)); 
      ctx.ExecuteQuery(); 
      List<string> uniqitem = new List<string>(); 
      foreach (var item in items) 
      { 
       foreach (var assignment in item.RoleAssignments) 
       { 
        uniqitem.Add(assignment.Member.Title); 
       } 
      } 
      int itemCount = uniqitem.Distinct().Count(); 

Könnten Sie mir bitte die richtige Methode in CSOM vorschlagen? Vielen Dank im Voraus

Antwort

0

Dank ist es leichter jetzt schneller

var items = list.GetItems(CamlQuery.CreateAllItemsQuery()); 
ctx.Load(items, col => col.Include(i => i.HasUniqueRoleAssignments)); 
ctx.ExecuteQuery(); 
int itemCount = items.Where(i => i.HasUniqueRoleAssignments).Count; 
0

testen

var items = list.GetItems(CamlQuery.CreateAllItemsQuery()); 
ctx.Load(items, icol => icol.Where(i => i.HasUniqueRoleAssignments == true)); 
ctx.ExecuteQuery(); 
int itemCount = items.Count; 
+0

Thank you so viel, es reagiert Ergebnis besser als mein Code, aber nicht mein Problem behoben. – kalimuthu

Verwandte Themen