Пример #1
0
 /// <summary>
 /// This method will check whether user exists in a sharepoint site or not
 /// </summary>
 /// <param name="externalSharingRequest"></param>
 /// <returns></returns>
 private static bool CheckUserPresentInMatterCenter(ClientContext ctx, string clientUrl,
                                                    string email, IConfigurationRoot configuration, TextWriter log)
 {
     try
     {
         string userAlias = email;
         ClientPeoplePickerQueryParameters queryParams = new ClientPeoplePickerQueryParameters();
         queryParams.AllowMultipleEntities    = false;
         queryParams.MaximumEntitySuggestions = 500;
         queryParams.PrincipalSource          = PrincipalSource.All;
         queryParams.PrincipalType            = PrincipalType.User | PrincipalType.SecurityGroup;
         queryParams.QueryString = userAlias;
         ClientResult <string> clientResult =
             ClientPeoplePickerWebServiceInterface.ClientPeoplePickerSearchUser(ctx, queryParams);
         ctx.ExecuteQuery();
         string results = clientResult.Value;
         int    peoplePickerMaxRecords       = 30;
         IList <PeoplePickerUser> foundUsers = Newtonsoft.Json.JsonConvert.DeserializeObject <List <PeoplePickerUser> >(results).Where(result => (string.Equals(result.EntityType, ServiceConstants.PEOPLE_PICKER_ENTITY_TYPE_USER,
                                                                                                                                                                StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(result.Description)) || (!string.Equals(result.EntityType,
                                                                                                                                                                                                                                                                          ServiceConstants.PEOPLE_PICKER_ENTITY_TYPE_USER, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(result.EntityData.Email))).Take(peoplePickerMaxRecords).ToList();
         return(foundUsers.Count > 0);
     }
     catch (Exception ex)
     {
         log.WriteLine($"Exception occured in the method CheckUserPresentInMatterCenter. {ex}");
         throw;
     }
 }
Пример #2
0
 /// <summary>
 /// This method will check whether user exists in a sharepoint site or not
 /// </summary>
 /// <param name="externalSharingRequest"></param>
 /// <returns></returns>
 public bool CheckUserPresentInMatterCenter(ClientContext clientContext, string email)
 {
     try
     {
         //If the current email is part of current organization, no need to check for validity of the user email
         if (email.Trim().ToLower().IndexOf(generalSettings.Tenant.Trim().ToLower()) > 0)
         {
             return(true);
         }
         string userAlias = email;
         ClientPeoplePickerQueryParameters queryParams = new ClientPeoplePickerQueryParameters();
         queryParams.AllowMultipleEntities    = false;
         queryParams.MaximumEntitySuggestions = 500;
         queryParams.PrincipalSource          = PrincipalSource.All;
         queryParams.PrincipalType            = PrincipalType.User | PrincipalType.SecurityGroup;
         queryParams.QueryString = userAlias;
         ClientResult <string> clientResult = ClientPeoplePickerWebServiceInterface.ClientPeoplePickerSearchUser(clientContext, queryParams);
         clientContext.ExecuteQuery();
         string results = clientResult.Value;
         int    peoplePickerMaxRecords       = 30;
         IList <PeoplePickerUser> foundUsers = Newtonsoft.Json.JsonConvert.DeserializeObject <List <PeoplePickerUser> >(results).Where(result => (string.Equals(result.EntityType, ServiceConstants.PEOPLE_PICKER_ENTITY_TYPE_USER,
                                                                                                                                                                StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(result.Description)) || (!string.Equals(result.EntityType,
                                                                                                                                                                                                                                                                          ServiceConstants.PEOPLE_PICKER_ENTITY_TYPE_USER, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(result.EntityData.Email))).Take(peoplePickerMaxRecords).ToList();
         return(foundUsers.Count > 0);
     }
     catch (Exception ex)
     {
         throw;
     }
 }
Пример #3
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);
        }
Пример #4
0
        /// <summary>
        /// Places service call to search user based on the search term.
        /// </summary>
        /// <param name="clientContext">Client context</param>
        /// <param name="searchTerm">Search term</param>
        /// <returns>Set of users returned by people picker service based on the search term</returns>
        internal static IList <PeoplePickerUser> SearchUsers(ClientContext clientContext, string searchTerm)
        {
            List <PeoplePickerUser> userResult = null;
            string results = string.Empty;
            int    peoplePickerMaxRecords;

            try
            {
                ClientPeoplePickerQueryParameters queryParams = new ClientPeoplePickerQueryParameters();
                queryParams.AllowMultipleEntities    = Convert.ToBoolean(ServiceConstantStrings.PeoplePickerAllowMultipleEntities, CultureInfo.InvariantCulture);
                queryParams.MaximumEntitySuggestions = Convert.ToInt32(ServiceConstantStrings.PeoplePickerMaximumEntitySuggestions, CultureInfo.InvariantCulture);
                queryParams.PrincipalSource          = PrincipalSource.All;
                queryParams.PrincipalType            = PrincipalType.User | PrincipalType.SecurityGroup;
                queryParams.QueryString = searchTerm;
                peoplePickerMaxRecords  = Convert.ToInt32(ServiceConstantStrings.PeoplePickerMaxRecords, CultureInfo.InvariantCulture);

                ClientResult <string> clientResult = ClientPeoplePickerWebServiceInterface.ClientPeoplePickerSearchUser(clientContext, queryParams);
                clientContext.ExecuteQuery();
                results    = clientResult.Value;
                userResult = JsonConvert.DeserializeObject <List <PeoplePickerUser> >(results).Where(result => (string.Equals(result.EntityType, ConstantStrings.PeoplePickerEntityTypeUser, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(result.Description)) || (!string.Equals(result.EntityType, ConstantStrings.PeoplePickerEntityTypeUser, StringComparison.OrdinalIgnoreCase) && !string.IsNullOrWhiteSpace(result.EntityData.Email))).Take(peoplePickerMaxRecords).ToList();
            }
            catch (Exception exception)
            {
                Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstantStrings.LogTableName);
            }
            return(userResult);
        }