Код: Выделить всё
var site = System.Threading.Tasks.Task.Run(() => graphClient.Sites[siteId].GetAsync(requestConfiguration => requestConfiguration.QueryParameters.Expand = new string[] { "drives" })).Result;
siteActualId = site.Id;
Затем я обрабатываю каждый элемент и, если это папка, я обрабатываю его элементы.
Когда я получаю элемент, который является документом, я получаю его элемент списка
Код: Выделить всё
doc = System.Threading.Tasks.Task.Run(() => graphClient.Drives[driveId].Items[item.Id].GetAsync(requestConfiguration => requestConfiguration.QueryParameters.Expand = new string[] { "ListItem" })).Result;
Код: Выделить всё
var fields = doc.ListItem.Fields.AdditionalData;
values[APPROVAL_COMMENTS] = GetFieldValue(fields, "ApprovalComments");
private string GetFieldValue(IDictionary fields, string key, bool date = false)
{
if (fields.ContainsKey(key))
{
if (date)
return ((DateTime)fields[key]).AddHours(offset).ToString("yyyy/MM/dd HH:mm:ss");
return fields[key].ToString();
}
return string.Empty;
}
Код: Выделить всё
values[APPROVER] = GetUserFieldValue(fields, "DocumentApproverLookupId");
private string GetUserFieldValue(IDictionary fields, string lookupId)
{
if (!fields.ContainsKey(lookupId))
return string.Empty;
string id = (string)fields[lookupId];
if (id.Length == 0)
return string.Empty;
if (!UserNames.ContainsKey(id))
{
if (token == null || token?.ExpiresOn < DateTime.UtcNow)
token = clientSecretCredential.GetToken(new TokenRequestContext(scopes));
var client = new RestClient($"https://graph.microsoft.com/v1.0/sites/{siteActualId}/lists('User Information List')/items/{id}?$expand=fields($select=Title)");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer " + token?.Token);
var response = client.Execute(request);
if (!string.IsNullOrEmpty(response.ErrorMessage))
throw new Exception("User name lookup failed: " + response.ErrorMessage);
int i = response.Content.LastIndexOf(",\"Title\":\"");
if (i == -1)
UserNames.Add(id, "Unknown");
else
{
i += 10;
int j = response.Content.IndexOf("\"", i);
UserNames.Add(id, response.Content.Substring(i, j - i));
}
}
return UserNames[id];
}
Как мне получить имя пользователя, если его идентификатор отсутствует в списке информации о пользователях сайта?>