Skip to content

Instantly share code, notes, and snippets.

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))]
@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
using System;
using System.Collections.Generic;
using System.Net;
using System.Runtime.Serialization;
using System.Text;
using EPiServer;
using EPiServer.Core;
using EPiServer.Marketing.KPI.Manager.DataClass;
using EPiServer.Marketing.KPI.Results;
using EPiServer.Personalization.VisitorGroups;
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;
using EPiServer.ServiceLocation;
using EPiServer.Tracking.Core;
namespace InsightScopes.Business.ChangeScope
{
[ServiceConfiguration(ServiceType = typeof(ITrackingDataInterceptor), Lifecycle = ServiceInstanceScope.Singleton)]
public class CustomScopeInterceptor : ITrackingDataInterceptor
{
public int SortOrder => int.MaxValue; // Ensure the interceptor fires last
@davidknipe
davidknipe / MigrateDynamicContentToBlocks.cs
Created April 11, 2018 21:34
Migrate Episerver Dynamic content to Episerver blocks
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using david_tec.Models.Blocks;
using david_tec.Models.Pages;
using EPi.Blog.Templates.PlugIn;
using EPiServer;
using EPiServer.Core;
using EPiServer.Core.Html.StringParsing;
@davidknipe
davidknipe / index.js
Last active June 19, 2018 19:36
Alexa skill for Episerver Music Festival to show of the Content Delivery API
'use strict';
// --------------- Helpers that build all of the responses -----------------------
var http = require('http');
var axios = require('axios');
var striptags = require('striptags');
function buildSpeechletResponse(title, output, repromptText, shouldEndSession) {
return {
@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);
}
}