Използвам Web.GetChanges(), за да извлека редица промени от уеб на SharePoint.
Трябва да прегледам промените и за всяка промяна, която е ChangeItem, да проверя свойството FileSystemObjectType (за да правя разлика между промени в елементи и промени в папки).
Не мога да намеря начин да заредя това свойство:
Не мога да го заредя, когато извикам GetChanges(), защото FileSystemObjectType е свойство на ChangeItem, а не на Change (върнато от GetChanges);
Не мога да го използвам, след като прехвърлям Change to ChangeItem, защото връща изключение „Свойство не е инициализирано“.
Това е въпросният код:
ChangeCollection changes = spcn.RootWeb.NativeWeb.GetChanges(query);
/* I cannot include FileSystemObjectType here */
spcn.RootWeb.NativeWeb.Context.Load(changes); //, c => c.Include(o => o.FileSystemObjectType));
spcn.RootWeb.NativeWeb.Context.ExecuteQuery();
foreach (Change change in changes)
{
Console.Write($"{change.GetType().Name} {change.ChangeType} {change.Time} ");
if (change is ChangeItem)
{
ChangeItem ci = (ChangeItem)change;
/* FileSystemObjectType is *not* initalised here */
Console.WriteLine($"{ci.ItemId} {ci.FileSystemObjectType}");
}
Надявам се, че е достатъчно ясно, уведомете ме, ако не е (NativeWeb е SharePoint Web).
Някакви идеи как мога да заредя това свойство?
Благодаря ти.