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; }
private void TestStrategy(IContentSource source, IDiscoveryStrategy strategy) { if (!Global.IsReadyRedlineEnabled) return; RedemptionLoader.DllLocation32Bit = Path.Combine(Workshare.Interop.Options.OptionApi.GetString("ProgramLocation"), "Redemption.dll"); IStrategyResult result = source.ApplyStrategy(strategy); Assert.AreEqual(1, result.Count); IMail sentMail = result.First() as IMail; Assert.IsNotNull(sentMail); Assert.AreEqual(1, sentMail.Attachments.Count); Assert.IsTrue(sentMail.Attachments.First().IsModified == false); Assert.IsNotNull(sentMail.Attachments.First().TrackingId); Assert.IsTrue("ReadyRedlineDocumentTrackingTest.doc" == sentMail.Attachments.First().DisplayName); }