Метод IFilteredReplicaNotifyingChangeApplierTarget.GetNewMoveInItems
Возвращает список идентификаторов элементов, которые определяют элементы, находящиеся в фильтре и не входящие в указанный набор знаний.
Пространство имен: Microsoft.Synchronization
Сборка: Microsoft.Synchronization (в microsoft.synchronization.dll)
Синтаксис
'Декларация
Function GetNewMoveInItems ( _
baseKnowledge As SyncKnowledge _
) As IEnumerator(Of SyncId)
'Применение
Dim instance As IFilteredReplicaNotifyingChangeApplierTarget
Dim baseKnowledge As SyncKnowledge
Dim returnValue As IEnumerator(Of SyncId)
returnValue = instance.GetNewMoveInItems(baseKnowledge)
IEnumerator<SyncId> GetNewMoveInItems (
SyncKnowledge baseKnowledge
)
IEnumerator<SyncId^>^ GetNewMoveInItems (
SyncKnowledge^ baseKnowledge
)
IEnumerator<SyncId> GetNewMoveInItems (
SyncKnowledge baseKnowledge
)
function GetNewMoveInItems (
baseKnowledge : SyncKnowledge
) : IEnumerator<SyncId>
Параметры
- baseKnowledge
Возвращаемый список идентификаторов элементов, находящихся в фильтре и не содержащихся в этом наборе знаний.
Возвращаемое значение
Список идентификаторов элементов, которые определяют элементы, находящиеся в фильтре и не входящие в baseKnowledge.
Замечания
Этот метод используется объектом применения изменений, чтобы определить, какие элементы переместились в фильтр после записи набора знаний, указанного параметром baseKnowledge. Например, реплика, в которой хранятся файлы мультимедиа, фильтруется так, чтобы в ней сохранялись только данные для файлов, которые получили оценку не ниже трех звезд. Когда записывается набор знаний baseKnowledge, файл получает оценку в две звезды. Пользователь изменяет оценку файла на четыре звезды. Файл перемещается в фильтр, и его необходимо включить в список, возвращаемый этим методом.
Пример
В следующем примере выполняется перечисление всех элементов в хранилище метаданных. Элемент включается в список новых входящих элементов, если он удовлетворяет критериям фильтра, используемого при синхронизации, и версия перемещения этого элемента в отношении данного фильтра отсутствует в указанном базовом наборе знаний.
Public Function GetNewMoveInItems(ByVal baseKnowledge As SyncKnowledge) As IEnumerator(Of SyncId) Implements IFilteredReplicaNotifyingChangeApplierTarget.GetNewMoveInItems
Dim newMoveInIdList As New List(Of SyncId)()
Dim allItems As IEnumerable(Of ItemMetadata) = _ContactStore.ContactReplicaMetadata.GetAllItems(False)
Dim mappedBaseKnowledge As SyncKnowledge = _ContactStore.ContactReplicaMetadata.GetKnowledge().MapRemoteKnowledgeToLocal(baseKnowledge)
For Each itemMeta As ItemMetadata In allItems
Dim filterChange As FilterChange = _ContactStore.GetTrackedFilterMetadata(itemMeta, _filterForSync)
If filterChange.IsMoveIn Then
If Not mappedBaseKnowledge.Contains(_ContactStore.ContactReplicaMetadata.ReplicaId, itemMeta.GlobalId, filterChange.MoveVersion) Then
newMoveInIdList.Add(itemMeta.GlobalId)
End If
End If
Next
Return newMoveInIdList.GetEnumerator()
End Function
public IEnumerator<SyncId> GetNewMoveInItems(SyncKnowledge baseKnowledge)
{
List<SyncId> newMoveInIdList = new List<SyncId>();
IEnumerable<ItemMetadata> allItems = _ContactStore.ContactReplicaMetadata.GetAllItems(false);
SyncKnowledge mappedBaseKnowledge = _ContactStore.ContactReplicaMetadata.GetKnowledge().MapRemoteKnowledgeToLocal(baseKnowledge);
foreach (ItemMetadata itemMeta in allItems)
{
FilterChange filterChange = _ContactStore.GetTrackedFilterMetadata(itemMeta, _filterForSync);
if (filterChange.IsMoveIn)
{
if (!mappedBaseKnowledge.Contains(_ContactStore.ContactReplicaMetadata.ReplicaId, itemMeta.GlobalId, filterChange.MoveVersion))
{
newMoveInIdList.Add(itemMeta.GlobalId);
}
}
}
return newMoveInIdList.GetEnumerator();
}
См. также
Справочник
Интерфейс IFilteredReplicaNotifyingChangeApplierTarget
Элементы IFilteredReplicaNotifyingChangeApplierTarget
Пространство имен Microsoft.Synchronization