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)); }
private IObjectPath generateNewPath(IObjectPath containerPath) { var newPath = new ObjectPath(); foreach (var element in containerPath) { newPath.Add(element.Equals(_oldName) ? _newName : element); } return(newPath); }
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)); }
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); } }