Exemple #1
0
        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));
        }
Exemple #2
0
        private IObjectPath generateNewPath(IObjectPath containerPath)
        {
            var newPath = new ObjectPath();

            foreach (var element in containerPath)
            {
                newPath.Add(element.Equals(_oldName) ? _newName : element);
            }
            return(newPath);
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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);
            }
        }