public override IStrategyResult ApplyStrategy(IDiscoveryStrategy strategy) { List<IMail> results = new List<IMail>(); foreach (IContentItem item in _dataSource) { if (item != null) { if (StrategyManager.CancellationPending) { return new StrategyResult(); } Logger.LogInfo(string.Format("OutlookSentItemSource.Applying Strategy {0}, on {1}", strategy.DisplayName, (item as IMail).Subject)); OnApplyingStrategy(new StrategyEventArgs() { MailItem = (item as IMail), Strategy = strategy, Source = this }); if (strategy.CompareTo(item) == 0) { results.Add(item as IMail); break; } } } IMail parentMail = ExtractParentContentItem(results); IStrategyResult strategyResult = new StrategyResult(); if (parentMail != null) { strategyResult.Add(parentMail); } return strategyResult; }
public virtual IStrategyResult ApplyStrategy(IDiscoveryStrategy strategy) { IStrategyResult strategyResult = new StrategyResult(); foreach (var item in DataSource) { if (strategy.CompareTo(item) == 0) { strategyResult.Add(item); } } return strategyResult; }