public void Process(StopTestArgs args) { if (args == null) { return; } var publications = _service.GetApplicablePublications(new Guid(Constants.PipelineEventIds.TestStopped)); if (!publications.Any()) { return; } var message = $"Test stopped for {args.Configuration.ContentItem}. The winner is {args.WinnerVersion.Paths.Path}."; foreach (var publication in publications) { foreach (var channel in publication.GetChannels()) { _message.Text = message; _message.UpdateChannelInfo(channel, publication); _service.PublishMessage(_message, true); } } }
public override void Apply(T ruleContext) { FinishTestRuleContext finishTestRuleContext = ruleContext as FinishTestRuleContext; if (finishTestRuleContext != null) { ITestConfiguration configuration = finishTestRuleContext.Configuration; IEnumerable <TestExperience> testExperience = configuration.Experiences; IContentTestPerformance performanceForTest = finishTestRuleContext.ContentTestPerformanceFactory.GetPerformanceForTest(configuration); StopTestArgs stopTestArgs = new StopTestArgs(); stopTestArgs.Configuration = finishTestRuleContext.Configuration; List <float> list = new List <float>(); List <TestExperience> listTestExperience = new List <TestExperience>(); foreach (var experience in testExperience) { SiteStatistics siteStatistics = performanceForTest.GetExperienceSiteStatistics(experience.Combination); list.Add(siteStatistics.BounceRate); listTestExperience.Add(experience); } if (list.Count != 0) { int indexOfMinBounceRate = GetIndexOfLowestBounceRate(list); if (indexOfMinBounceRate != 0) { TestCombination testCombination = new TestCombination(listTestExperience[indexOfMinBounceRate].Combination, configuration.TestSet); if (testCombination == null) { return; } using (new Sitecore.Data.Items.EditContext(configuration.TestDefinitionItem)) { configuration.TestDefinitionItem.WinnerCombination = testCombination.Combination.MultiplexToString("-"); } Sitecore.Data.Items.Item item = configuration.TestDefinitionItem; Sitecore.Data.Database[] targets = PublishingHelper.GetTargets(item).ToArray <Sitecore.Data.Database>(); Sitecore.Publishing.PublishManager.PublishItem(item, targets, item.Languages, true, true); stopTestArgs.Combination = testCombination; SettingsDependantPipeline <StopTestPipeline, StopTestArgs> .Instance.Run(stopTestArgs); } } } }
public void Process(StopTestArgs args) { if (args == null) return; var publications = _service.GetApplicablePublications(new Guid(Constants.PipelineEventIds.TestStopped)); if (!publications.Any()) return; var message = $"Test stopped for {args.Configuration.ContentItem}. The winner is {args.WinnerVersion.Paths.Path}."; foreach (var publication in publications) { foreach (var channel in publication.GetChannels()) { _message.Text = message; _message.UpdateChannelInfo(channel, publication); _service.PublishMessage(_message, true); } } }