Skip to content

Instantly share code, notes, and snippets.

@espierre
Created October 26, 2021 15:13
Show Gist options
  • Select an option

  • Save espierre/25f95dfcaa40a4d8813582caa51d8e42 to your computer and use it in GitHub Desktop.

Select an option

Save espierre/25f95dfcaa40a4d8813582caa51d8e42 to your computer and use it in GitHub Desktop.
Optimizely custom visitor group model and criteria classes
using EPiServer.Personalization.VisitorGroups;
using System.Security.Principal;
using System.Web;
namespace Foundation.Personalization.Criteria.CookieExistsWithValue
{
[VisitorGroupCriterion(
Category = "Custom",
DisplayName = "Cookie Exists with Value",
Description = "Evaluates if a visitor has a cookie with a specific value")]
public class CookieWithValue : CriterionBase<CookieWithValueModel>
{
public override bool IsMatch(IPrincipal principal, HttpContextBase httpContext)
{
return (httpContext.Request.Cookies[Model.CookieName] != null &&
httpContext.Request.Cookies[Model.CookieName].Value == Model.CookieValue);
}
}
}
using EPiServer.Personalization.VisitorGroups;
namespace Foundation.Personalization.Criteria.CookieExistsWithValue
{
public class CookieWithValueModel : CriterionModelBase
{
public string CookieName { get; set; }
public string CookieValue { get; set; }
public override ICriterionModel Copy()
{
return ShallowCopy();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment