コード例 #1
0
        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);
            }
        }
コード例 #2
0
 public SameConversationAggregator(IAggregationByItemClassReferencesSubjectProcessor referenceProcessor) : base(referenceProcessor)
 {
 }
コード例 #3
0
 public ConversationAggregatorBase(IAggregationByItemClassReferencesSubjectProcessor referencesProcessor)
 {
     this.referencesProcessor = referencesProcessor;
 }
コード例 #4
0
 public ThreadedConversationAggregator(IMailboxOwner mailboxOwner, bool scenarioSupportsSearchForDuplicatedMessages, IAggregationByItemClassReferencesSubjectProcessor referencesProcessor, IAggregationByParticipantProcessor participantProcessor, IConversationAggregationDiagnosticsFrame diagnosticsFrame) : base(mailboxOwner, scenarioSupportsSearchForDuplicatedMessages, referencesProcessor, participantProcessor, diagnosticsFrame)
 {
 }
コード例 #5
0
 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;
 }