Вопрос

Я использую CSOM в API.Я использовал следующий код для поиска контента в документах, и теперь хочу интегрировать поиск людей, которые могут обыскивать пользователями сайта SharePoint, используя CSOM.

MethodResponse<ClientResult<ResultTableCollection>> response = new MethodResponse<ClientResult<ResultTableCollection>>();            
        UserCredential userCredential = new UserCredential();
        try
        {                
            userCredential = VerifyToken(token);
            if (userCredential != null)
            {
                _ctx = GetClientContext(userCredential);
                if (_ctx != null)
                {                     
                    KeywordQuery keywordQuery = new KeywordQuery(_ctx);
                    keywordQuery.QueryText = Convert.ToString(text);
                    SearchExecutor searchExecutor = new SearchExecutor(_ctx);
                    ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
                    _ctx.ExecuteQuery();                                                
                    response.ErrorCode = "200";
                    response.ErrorDescription = "No Error";
                    response.Response = results;                       
                }
            }
        }
.

Я попробовал поиск этого, но напрасно.Пожалуйста, помогите.

Это было полезно?

Решение

Я решил это сам, действительно может помочь кому-то ..

public MethodResponse> GetPeoples(string text, string token)
        {
            MethodResponse> response = new MethodResponse>();
            List lstMetadata = new List();
            UserCredential userCredential = new UserCredential();

            try
            {
                userCredential = VerifyToken(token);
                if (userCredential != null)
                {
                    _ctx = GetClientContext(userCredential);
                    if (_ctx != null)
                    {

                        KeywordQuery keywordQuery = new KeywordQuery(_ctx);
                        keywordQuery.QueryText = text;
//                        keywordQuery.HiddenConstraints = "scope:\"People\"";                        
                        keywordQuery.TrimDuplicates = true;                        
                        keywordQuery.SourceId = Guid.Parse("B09A7990-05EA-4AF9-81EF-EDFAB16C4E31");
                        SearchExecutor searchExecutor = new SearchExecutor(_ctx);
                        ClientResult results = searchExecutor.ExecuteQuery(keywordQuery);
                        _ctx.ExecuteQuery();

                        if (results.Value[0].RowCount > 0)
                        {
                            foreach (var resultRow in results.Value[0].ResultRows)
                            {
                                lstMetadata.Add(resultRow["PreferredName"].ToString());
                            }
                            response.ErrorCode = "200";
                            response.ErrorDescription = "No error.";
                            response.Response = lstMetadata;

                        }
                        else
                        {
                            response.ErrorCode = "400";
                            response.ErrorDescription = "No users found.";
                            response.Response = lstMetadata;
                        }
                    }
                }
            }
            catch (Exception ex)
            {        
                response.ErrorCode = "400";
                response.ErrorDescription = ex.Message;
                response.Response = null;
            }
            finally
            {
                _ctx.Dispose();
            }
            return response;
        }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top