using Sitecore.Analytics.Data.Items;
using Sitecore.Analytics.Testing;
using Sitecore.Data.Items;
using
Sitecore.Mvc.Analytics.Pipelines.Response.CustomizeRendering;
namespace HA.Web.Analytics.Pipelines
{
public class SelectTestVariation : SelectVariation
{
protected override void ApplyVariation(CustomizeRenderingArgs args, ComponentTestContext context)
{
TestCombination testCombination = Tracker.CurrentPage.GetTestCombination();
if (testCombination == null)
return;
Item testItem = Sitecore.Context.Database.GetItem(testCombination.Testset.Id.ToString());
MultivariateTestDefinitionItem test = new MultivariateTestDefinitionItem(testItem);
TestDefinitionItem defItem = new TestDefinitionItem(testItem);
IMultiVariateTestStrategy strategy = TestManager.GetTestStrategy(defItem);
if (SessionManager.Instance.MultivariateTestPage != null)
{
//if
session contains current page's GUID proceed
if(SessionManager.Instance.MultivariateTestPage.Contains(Tracker.CurrentPage.ItemId.ToString()))
{
//proceed
}
else
{
Tracker.CurrentPage.SetTestSetIdNull();
Tracker.CurrentPage.SetTestValuesNull();
return;
}
}
else if (strategy is WeightedStickyOncePerSessionMultiVariateTestStrategy)
{
SessionManager.Instance.MultivariateTestPage = Tracker.CurrentPage.ItemId.ToString();
}
base.ApplyVariation(args, context);
}
}
}
No comments:
Post a Comment