public Maybe <Message> GetEmbeddedMessage() { var embeddedMessageNodeId = GetEmbeddedMessageNodeId(); if (embeddedMessageNodeId.HasNoValue) { return(Maybe <Message> .NoValue()); } var embeddedMessageNodePath = objectPath.Add(embeddedMessageNodeId.Value); objectTracker.TrackObject( embeddedMessageNodePath, ObjectTypes.Message, ObjectStates.Loaded); return (new Message( embeddedMessageNodePath, objectTracker, recipientTracker, nodeEntryFinder, rowIndexReader, propertyNameToIdMap, propertyContextBasedPropertyReader, tableContextBasedPropertyReader)); }
public Folder GetRootMailboxFolder() { var ipmSubtreeEntryId = MessageStore.GetProperty(MAPIProperties.PidTagIpmSubTreeEntryId); var entryId = EntryId.OfValue(ipmSubtreeEntryId.Value.Value); var nodePath = new ObjectPath(new[] { entryId.NID }); if (!objectTracker.IsObjectTracked(nodePath)) { objectTracker.TrackObject(nodePath, ObjectTypes.Folder, ObjectStates.Loaded); } return (new Folder( nodePath, objectTracker, recipientTracker, stringEncoder, propertyNameToIdMap, propertyContextBasedPropertyReader, nodeEntryFinder, rowIndexReader, tableContextBasedPropertyReader, nodeIdAllocator)); }
public void TrackedObjectStillAliveTest() { IObjectTracker objectTracker = ObjectTracker.Instance; objectTracker.ForceTrack = true; objectTracker.TrackObject(trackObj); Assert.AreEqual(1, objectTracker.GetLiveTrackedObjects().Count()); }
public Folder NewFolder(string displayName) { var childFolderNodePath = objectPath.Add(nodeIdAllocator.Allocate(Constants.NID_TYPE_NORMAL_FOLDER)); objectTracker.TrackObject( childFolderNodePath, ObjectTypes.Folder, ObjectStates.New); objectTracker.SetProperty( childFolderNodePath, MAPIProperties.PidTagDisplayName, new PropertyValue(stringEncoder.Encode(displayName))); objectTracker.SetProperty( childFolderNodePath, MAPIProperties.PidTagContentCount, new PropertyValue(BinaryData.OfValue(0))); objectTracker.SetProperty( childFolderNodePath, MAPIProperties.PidTagContentUnreadCount, new PropertyValue(BinaryData.OfValue(0))); objectTracker.SetProperty( childFolderNodePath, MAPIProperties.PidTagSubfolders, new PropertyValue(BinaryData.OfValue(false))); return (new Folder( childFolderNodePath, objectTracker, recipientTracker, stringEncoder, propertyNameToIdMap, propertyContextBasedPropertyReader, nodeEntryFinder, rowIndexReader, tableContextBasedPropertyReader, nodeIdAllocator)); }
internal static void TrackObject(List <Lazy <IObjectTracker> > objectTrackers, string bucketName, object value) { foreach (Lazy <IObjectTracker> trackerExport in objectTrackers) { IObjectTracker objectTracker = trackerExport.Value; if (objectTracker != null) { objectTracker.TrackObject(value, bucketName); } } }
public void TrackedObjectDeadAfterNoRefTest() { IObjectTracker objectTracker = ObjectTracker.Instance; objectTracker.ForceTrack = true; objectTracker.TrackObject(trackObj); trackObj = null; Assert.AreEqual(0, objectTracker.GetLiveTrackedObjects().Count()); }
private void LoadPreExistingAttachments() { var entry = nodeEntryFinder.GetEntry(new[] { objectPath.LocalNodeId }); if (entry.HasNoValue) { return; } var tableContextNodeId = entry.Value.GetChildOfType(Constants.NID_TYPE_ATTACHMENT_TABLE).LocalSubnodeId; foreach (var rowId in rowIndexReader.GetAllRowIds(new[] { objectPath.LocalNodeId, tableContextNodeId })) { objectTracker.TrackObject(objectPath.Add(NID.OfValue(rowId.RowId)), ObjectTypes.Attachment, ObjectStates.Loaded); } }