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>(); }