示例#1
0
        public ConversationDataExtractor Create(bool isIrmEnabled, HashSet <PropertyDefinition> propertiesLoadedForExtractedItems, ConversationId conversationId, IConversationTree tree, bool isSmimeSupported, string domainName)
        {
            PropertyDefinition[] queriedPropertyDefinitions = (propertiesLoadedForExtractedItems != null) ? propertiesLoadedForExtractedItems.ToArray <PropertyDefinition>() : Array <PropertyDefinition> .Empty;
            int              totalNodeCount   = (tree == null) ? 0 : tree.Count;
            ItemPartLoader   itemPartLoader   = new ItemPartLoader(this.xsoFactory, this.session, isIrmEnabled, queriedPropertyDefinitions);
            OptimizationInfo optimizationInfo = new OptimizationInfo(conversationId, totalNodeCount);

            return(new ConversationDataExtractor(itemPartLoader, isIrmEnabled, optimizationInfo, isSmimeSupported, domainName));
        }
 public ConversationDataExtractor(ItemPartLoader itemPartLoader, bool isIrmEnabled, OptimizationInfo optimizationInfo, bool isSmimeSupported = false, string domainName = null)
 {
     this.isIrmEnabled           = isIrmEnabled;
     this.itemPartLoader         = itemPartLoader;
     this.optimizationInfo       = optimizationInfo;
     this.isSmimeSupported       = isSmimeSupported;
     this.domainName             = domainName;
     this.treeNodeBodyFragment   = new Dictionary <StoreObjectId, KeyValuePair <BodyFragmentInfo, bool> >();
     this.bodySummaryLoadedNodes = new HashSet <StoreObjectId>();
     this.loadStatus             = new Dictionary <KeyValuePair <ConversationBodyScanner, StoreObjectId>, ExtractionData>();
     this.loadedItemParts        = new Dictionary <StoreObjectId, LoadedItemPart>();
     this.itemParts = new Dictionary <StoreObjectId, ItemPart>();
     this.displayNameToParticipant = new Dictionary <string, Participant>();
 }