Skip to content

Instantly share code, notes, and snippets.

using EPiServer.Shell.ContentQuery;
using System.Collections.Generic;
using System.Web;
using EPiServer;
using EPiServer.Approvals;
using EPiServer.Core;
using EPiServer.ServiceLocation;
using EPiServer.Shell.Rest;
using EPiServer.Shell.Services.Rest;
@davidknipe
davidknipe / IMarketAccessRightsHelper.cs
Last active June 29, 2018 13:05
Set access rights to Episerver Commerce Markets for specific users
using Mediachase.Commerce;
namespace EPiServer.Reference.Commerce.Site.Features.MarketSecurity
{
public interface IMarketAccessRightsHelper
{
bool IsFilteredMarketsRequest();
bool UserHasAccessToMarket(IMarket market);
}
}
using EPiServer.ServiceLocation;
using EPiServer.Framework.Initialization;
using EPiServer.Find.Framework.BestBets;
using EPiServer.Framework;
namespace BestBetExtension.Business.CustomPhraseCriterion
{
[InitializableModule]
[ModuleDependency(typeof(ServiceContainerInitialization))]
[ModuleDependency(typeof(EPiServer.Find.Framework.FrameworkInitializationModule))]
using EPiServer.Find.Framework.BestBets;
using EPiServer.Globalization;
using System;
using System.Globalization;
using System.Linq;
namespace BestBetExtension.Business.CustomPhraseCriterion
{
public class LocaleAwarePhraseCriterion : DefaultPhraseCriterion, IPhraseCriterion
{
@davidknipe
davidknipe / FilledInFormKpi.cs
Created September 1, 2017 16:49
A submitted form KPI for Episerver A/B testing
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Runtime.Serialization;
using System.Text;
using EPiServer;
using EPiServer.Core;
using EPiServer.Forms.Core;
using EPiServer.Forms.Core.Events;
@davidknipe
davidknipe / PreventSelfApprovalInit.cs
Last active October 7, 2017 19:17
Prevent users from starting an approval sequence where there are an approver in Episerver approval sequences
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.ServiceLocation;
using EPiServer.Core;
using EPiServer.Security;
using EPiServer.Approvals;
using EPiServer.Approvals.ContentApprovals;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using EPiServer.Cms.UI.AspNetIdentity;
@davidknipe
davidknipe / ValidatingApprovalEngine.cs
Created October 8, 2017 20:04
Approval Engine that throws an exception if a user tries to approve their own content
using EPiServer.Approvals;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using EPiServer.Framework;
using EPiServer.ServiceLocation;
using EPiServer.Framework.Initialization;
using EPiServer.Security;
namespace ApprovalSequences
@davidknipe
davidknipe / CampaignCouponFilter.cs
Last active June 17, 2021 07:24
Custom promotion to allow unique coupon codes created in Episerver Campaign to be used in Episerver Commerce discounts
using System;
using System.Collections.Generic;
using System.Linq;
using Campaign.CouponServices.Interfaces;
using EPiServer.Commerce.Marketing;
using EPiServer.Reference.Commerce.Site.Features.CampaignCoupons.Discount;
using EPiServer.Security;
using Mediachase.Commerce.Security;
namespace EPiServer.Reference.Commerce.Site.Features.CampaignCoupons.CouponFilter
@davidknipe
davidknipe / ReplacementTokenProperty.cs
Last active March 27, 2019 11:44
Tokenised Content in Episerver
using System.ComponentModel.DataAnnotations;
using EPiServer.Core;
using EPiServer.PlugIn;
namespace TokenisedContent.Features.TokenisedContent
{
[PropertyDefinitionTypePlugIn]
public class ReplacementTokenProperty : PropertyList<ReplacementToken> { }
public class ReplacementToken
using System.Web;
using EPiServer.Core;
using EPiServer.Tracking.Core;
namespace AlloyDemoKit.Business.Insight
{
public class TrackingExample
{
private readonly ITrackingService _trackingService;
private readonly HttpContextBase _httpContextBase;