private bool TryInstantiateAggregator(ConversationAggregatorFactory.AggregationApproach approach, bool scenarioSupportsSearchForDuplicatedMessages, out IConversationAggregator aggregator) { aggregator = null; if (approach == ConversationAggregatorFactory.AggregationApproach.NoOp) { return(false); } IAggregationByItemClassReferencesSubjectProcessor aggregationByItemClassReferencesSubjectProcessor = AggregationByItemClassReferencesSubjectProcessor.CreateInstance(this.xsoFactory, this.session, this.mailboxOwner.RequestExtraPropertiesWhenSearching, this.indexTrackingEx); if (approach == ConversationAggregatorFactory.AggregationApproach.SameConversation) { aggregator = new SameConversationAggregator(aggregationByItemClassReferencesSubjectProcessor); return(true); } ConversationAggregationDiagnosticsFrame diagnosticsFrame = new ConversationAggregationDiagnosticsFrame(this.session); AggregationByParticipantProcessor participantProcessor = AggregationByParticipantProcessor.CreateInstance(this.session, this.xsoFactory); switch (approach) { case ConversationAggregatorFactory.AggregationApproach.SideConversation: aggregator = new SideConversationAggregator(this.mailboxOwner, scenarioSupportsSearchForDuplicatedMessages, aggregationByItemClassReferencesSubjectProcessor, participantProcessor, diagnosticsFrame); return(true); case ConversationAggregatorFactory.AggregationApproach.ThreadedConversation: aggregator = new ThreadedConversationAggregator(this.mailboxOwner, scenarioSupportsSearchForDuplicatedMessages, aggregationByItemClassReferencesSubjectProcessor, participantProcessor, diagnosticsFrame); return(true); default: return(false); } }
public SameConversationAggregator(IAggregationByItemClassReferencesSubjectProcessor referenceProcessor) : base(referenceProcessor) { }
public ConversationAggregatorBase(IAggregationByItemClassReferencesSubjectProcessor referencesProcessor) { this.referencesProcessor = referencesProcessor; }
public ThreadedConversationAggregator(IMailboxOwner mailboxOwner, bool scenarioSupportsSearchForDuplicatedMessages, IAggregationByItemClassReferencesSubjectProcessor referencesProcessor, IAggregationByParticipantProcessor participantProcessor, IConversationAggregationDiagnosticsFrame diagnosticsFrame) : base(mailboxOwner, scenarioSupportsSearchForDuplicatedMessages, referencesProcessor, participantProcessor, diagnosticsFrame) { }
public AudienceBasedConversationAggregator(IMailboxOwner mailboxOwner, bool scenarioSupportsSearchForDuplicatedMessages, IAggregationByItemClassReferencesSubjectProcessor referencesProcessor, IAggregationByParticipantProcessor participantProcessor, IConversationAggregationDiagnosticsFrame diagnosticsFrame) : base(referencesProcessor) { this.mailboxOwner = mailboxOwner; this.participantProcessor = participantProcessor; this.diagnosticsFrame = diagnosticsFrame; this.scenarioSupportsSearchForDuplicatedMessages = scenarioSupportsSearchForDuplicatedMessages; }