Beispiel #1
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);
            }
        }
Beispiel #2
0
        private Maybe <NID> GetEmbeddedMessageNodeId()
        {
            var entry = nodeEntryFinder.GetEntry(new[] { objectPath.ParentObjectPath.LocalNodeId, objectPath.LocalNodeId });

            if (entry.HasNoValue)
            {
                return(Maybe <NID> .NoValue());
            }

            var attachMethodPropertyValue = GetProperty(MAPIProperties.PidTagAttachMethod);

            if (!attachMethodPropertyValue.HasValueAnd(v => v.Value.HasFlag(MAPIProperties.afEmbeddedMessage)))
            {
                return(Maybe <NID> .NoValue());
            }

            var attachDataObject = GetProperty(MAPIProperties.PidTagAttachDataObject);

            return(NID.OfValue(attachDataObject.Value.Value.Take(4)));
        }
Beispiel #3
0
        public BinaryData[] Read(NID[] nodePath, Maybe <int> blockIndex)
        {
            var nodeEntry = nodeEntryFinder.GetEntry(nodePath);

            return(Read(nodeEntry.Value.NodeDataBlockId, blockIndex));
        }