示例#1
0
        public List <User> Search(string query, string uniqueField, int maxSuggestions = 100, PrincipalSource principalSource = PrincipalSource.All, PrincipalType principalType = PrincipalType.User, int sharePointGroupId = -1)
        {
            if (string.IsNullOrWhiteSpace(query))
            {
                return(null);
            }

            ClientPeoplePickerQueryParameters querryParams = new ClientPeoplePickerQueryParameters();

            querryParams.AllowMultipleEntities    = false;
            querryParams.MaximumEntitySuggestions = maxSuggestions;
            querryParams.PrincipalSource          = principalSource;
            querryParams.PrincipalType            = principalType;
            querryParams.QueryString       = query;
            querryParams.SharePointGroupID = sharePointGroupId;

            //execute query to Sharepoint
            ClientResult <string> clientResult = ClientPeoplePickerWebServiceInterface.ClientPeoplePickerSearchUser(_clientContext, querryParams);

            _clientContext.ExecuteQuery();
            dynamic target  = new JavaScriptSerializer().DeserializeObject(clientResult.Value);
            var     matches = new List <User>();

            foreach (var user in target)
            {
                User ensuredUser = _clientContext.Web.EnsureUser(user[uniqueField]);
                _clientContext.Load(ensuredUser);
                matches.Add(ensuredUser);
            }
            _clientContext.ExecuteQuery();
            return(matches);
        }
 public void setup(){
     source = new PrincipalSource();
     testuser = new GenericPrincipal(new GenericIdentity("test"), new string[]{});
     source.BasePrincipal = null;
 }