Example #1
0
        internal void UpdateItemBodyTagMismatched(StoreObjectId storeId)
        {
            ItemOptimizationStatus itemOptimizationStatus = this.GetOptimizationInfo(storeId);

            if ((itemOptimizationStatus & ItemOptimizationStatus.Extracted) == ItemOptimizationStatus.Extracted)
            {
                return;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.BodyTagMismatched) == ItemOptimizationStatus.BodyTagMismatched)
            {
                return;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.NonMsHeader) == ItemOptimizationStatus.NonMsHeader)
            {
                this.nonMSHeaderCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.NonMsHeader;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.BodyFormatMismatched) == ItemOptimizationStatus.BodyFormatMismatched)
            {
                this.bodyFormatMismatchedCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.BodyFormatMismatched;
            }
            this.bodyTagMismatchedCount++;
            this.optimizationStatus[storeId] = (itemOptimizationStatus | ItemOptimizationStatus.BodyTagMismatched);
        }
Example #2
0
        internal void UpdateItemExtracted(StoreObjectId storeId)
        {
            ItemOptimizationStatus itemOptimizationStatus = this.GetOptimizationInfo(storeId);

            if ((itemOptimizationStatus & ItemOptimizationStatus.Opened) != ItemOptimizationStatus.None)
            {
                throw new InvalidOperationException("Can't extract already opened item");
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.IrmProtected) == ItemOptimizationStatus.IrmProtected)
            {
                throw new InvalidOperationException("Can't extract from an IRM message");
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.BodyTagNotPresent) == ItemOptimizationStatus.BodyTagNotPresent)
            {
                itemOptimizationStatus &= ~ItemOptimizationStatus.BodyTagNotPresent;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.AttachmentPresnet) == ItemOptimizationStatus.AttachmentPresnet)
            {
                throw new InvalidOperationException("Can't extract item that has Attachments");
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.MapiAttachmentPresent) == ItemOptimizationStatus.MapiAttachmentPresent)
            {
                throw new InvalidOperationException("Can't extract item that has MAPI Attachments");
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.PossibleInlines) == ItemOptimizationStatus.PossibleInlines)
            {
                throw new InvalidOperationException("Can't extract item that has inlines");
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.NonMsHeader) == ItemOptimizationStatus.NonMsHeader)
            {
                this.nonMSHeaderCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.NonMsHeader;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.BodyTagMismatched) == ItemOptimizationStatus.BodyTagMismatched)
            {
                this.bodyTagMismatchedCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.BodyTagMismatched;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.BodyFormatMismatched) == ItemOptimizationStatus.BodyFormatMismatched)
            {
                this.bodyFormatMismatchedCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.BodyFormatMismatched;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.ParticipantNotFound) == ItemOptimizationStatus.ParticipantNotFound)
            {
                this.participantNotFoundCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.ParticipantNotFound;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.ExtraPropertiesNeeded) == ItemOptimizationStatus.ExtraPropertiesNeeded)
            {
                this.extraPropertiesNeededCount--;
                itemOptimizationStatus &= ~ItemOptimizationStatus.ExtraPropertiesNeeded;
            }
            if ((itemOptimizationStatus & ItemOptimizationStatus.Extracted) == ItemOptimizationStatus.Extracted)
            {
                return;
            }
            this.itemsExtracted++;
            this.optimizationStatus[storeId] = (itemOptimizationStatus | ItemOptimizationStatus.Extracted);
        }
Example #3
0
        internal void UpdateItemParticipantNotFound(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo = this.GetOptimizationInfo(storeId);

            if ((optimizationInfo & ItemOptimizationStatus.ParticipantNotFound) == ItemOptimizationStatus.ParticipantNotFound)
            {
                return;
            }
            this.participantNotFoundCount++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.ParticipantNotFound);
        }
Example #4
0
        internal void UpdateItemSummaryConstructed(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo = this.GetOptimizationInfo(storeId);

            if ((optimizationInfo & ItemOptimizationStatus.SummaryConstructed) == ItemOptimizationStatus.SummaryConstructed)
            {
                return;
            }
            this.summaryConstructed++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.SummaryConstructed);
        }
Example #5
0
        internal void UpdateItemOpened(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo       = this.GetOptimizationInfo(storeId);
            ItemOptimizationStatus itemOptimizationStatus = optimizationInfo & ItemOptimizationStatus.Extracted;

            if ((optimizationInfo & ItemOptimizationStatus.Opened) == ItemOptimizationStatus.Opened)
            {
                return;
            }
            this.itemsOpened++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.Opened);
        }
Example #6
0
        internal void UpdateItemIsLeafNode(StoreObjectId storeId)
        {
            ItemOptimizationStatus itemOptimizationStatus = this.GetOptimizationInfo(storeId);

            if ((itemOptimizationStatus & ItemOptimizationStatus.LeafNode) == ItemOptimizationStatus.LeafNode)
            {
                return;
            }
            itemOptimizationStatus          |= ItemOptimizationStatus.LeafNode;
            this.optimizationStatus[storeId] = itemOptimizationStatus;
            this.leafNodes++;
        }
Example #7
0
        internal void UpdateItemIrmProtected(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo = this.GetOptimizationInfo(storeId);

            if ((optimizationInfo & ItemOptimizationStatus.Extracted) == ItemOptimizationStatus.Extracted)
            {
                throw new InvalidOperationException("Item already loaded");
            }
            if ((optimizationInfo & ItemOptimizationStatus.IrmProtected) == ItemOptimizationStatus.IrmProtected)
            {
                return;
            }
            this.irmProtectedCount++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.IrmProtected);
        }
Example #8
0
        internal void UpdateItemMapiAttachmentPresent(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo = this.GetOptimizationInfo(storeId);

            if ((optimizationInfo & ItemOptimizationStatus.Extracted) == ItemOptimizationStatus.Extracted)
            {
                throw new InvalidOperationException("Item already loaded");
            }
            if ((optimizationInfo & ItemOptimizationStatus.MapiAttachmentPresent) == ItemOptimizationStatus.MapiAttachmentPresent)
            {
                return;
            }
            this.mapiAttachmentPresentCount++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.MapiAttachmentPresent);
        }
Example #9
0
        internal void UpdateItemMayHaveInline(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo = this.GetOptimizationInfo(storeId);

            if ((optimizationInfo & ItemOptimizationStatus.Extracted) == ItemOptimizationStatus.Extracted)
            {
                throw new InvalidOperationException("Extrated message may not have parent and inlines");
            }
            if ((optimizationInfo & ItemOptimizationStatus.PossibleInlines) == ItemOptimizationStatus.PossibleInlines)
            {
                return;
            }
            this.possibleInlinesCount++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.PossibleInlines);
        }
Example #10
0
        internal void UpdateItemBodyFormatMismatched(StoreObjectId storeId)
        {
            ItemOptimizationStatus optimizationInfo = this.GetOptimizationInfo(storeId);

            if ((optimizationInfo & ItemOptimizationStatus.Extracted) == ItemOptimizationStatus.Extracted)
            {
                return;
            }
            if ((optimizationInfo & ItemOptimizationStatus.BodyFormatMismatched) == ItemOptimizationStatus.BodyFormatMismatched)
            {
                return;
            }
            if ((optimizationInfo & ItemOptimizationStatus.BodyTagMismatched) == ItemOptimizationStatus.BodyTagMismatched)
            {
                return;
            }
            this.bodyFormatMismatchedCount++;
            this.optimizationStatus[storeId] = (optimizationInfo | ItemOptimizationStatus.BodyFormatMismatched);
        }