Поиск дискаItem с запросом Document-IDC#

Место общения программистов C#
Ответить
Anonymous
 Поиск дискаItem с запросом Document-ID

Сообщение Anonymous »

Моя цель — считать DriveItemId из Document-ID.

Код: Выделить всё

Document-ID
— это уникальный столбец SharePoint, который присваивается каждому файлу в библиотеке SharePoint.
Я попробовал использовать этот метод ниже, чтобы получить DriveItem (по его DriveItemId< /code>) с помощью поиска по запросу:

Код: Выделить всё

public async Task GetDriveItemIdAsync(string driveId, string docId)
{
try
{
var query = $"Dokument-ID:{docId}";

var results = await _graphClient.Drives[driveId].SearchWithQ(query).GetAsSearchWithQGetResponseAsync();

if (results.Value.Count == 1)
{
_logger.Info($"Found one document with documentId '{docId}' in drive '{driveId}'.");
return results.Value.FirstOrDefault().Id;
}
else if (results.Value.Count == 0)
{
_logger.Info($"No document with documentId '{docId}' found in drive '{driveId}'.");
throw new Exception($"No document with documentId '{docId}' found in drive '{driveId}'.");
}
else
{
var driveItemId = results.Value.FirstOrDefault().Id;
var message = "Dokumente: \n";

foreach (var item in results.Value)
{
message += $"Name: {item.Name}, Id: {item.Id}\n";
}

_logger.Error($"More than one document with documentId '{docId}' found in drive '{driveId}'. Returning the first item with driveItemId == '{driveItemId}' \n{message}");
MessageBox.Show($"Mehr als ein Dokument mit der DocumentId '{docId}' in Laufwerk '{driveId}' gefunden. Melden Sie sich sofort bei der IT und zeigen Sie diese Fehlermeldung. \n{message}", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
return driveItemId;
}
}
catch (ServiceException ex)
{
_logger.Error($"Error while trying to get last version of item with documentId '{docId}' in drive '{driveId}'. Exception: '{ex}'");
throw;
}
}
Я еще не совсем понял запрос: с некоторыми вводами documentID я вообще не получаю обратно ни одного элемента, а с другими я получаю гораздо больше, чем просто один элемент, даже хотя столбец documentID вообще не соответствует.
Он ведет себя очень странно, возможно, потому, что мой запрос еще неверен.
Спасибо за вашу помощь, я также открыт для лучшего решения для получения DriveItemId по DocumentID в библиотеке SharePoint.

Изменить:
Использование фильтра тоже может быть решением, но я думаю, что ответ в этом сообщении больше недействителен, не удалось найти ничего в документация об этом.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ocument-id
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»