using System; using System.Collections.Generic; using System.Linq; using System.Web; using EPiServer.ConnectForCampaign.Core.Configuration; using EPiServer.ConnectForCampaign.Core.Implementation; using EPiServer.ConnectForCampaign.Services; using EPiServer.ConnectForCampaign.Services.Implementation; using EPiServer.Framework; using EPiServer.Framework.Initialization; using EPiServer.ServiceLocation; using EPiServer.Shell.ObjectEditing; namespace Alloy11MVC.Business.Initialization { public class CustomOptinProcessServive : OptinProcessService { public CustomOptinProcessServive(IServiceClientFactory serviceClientFactory, ICacheService cacheService, ICampaignSettings campaignSettings, IAuthenticationService authenticationService) : base(serviceClientFactory, cacheService, campaignSettings, authenticationService) { } public override IEnumerable GetAllowedOptInProcesses() { // GetAllOptInProcesses() returns a list of all opt-in processes where each item is a Tuple: // + Item1 is the Id of the optin process // + Item2 is the Name of the optin process // + Item3 is the Type of the optin process var optinList = GetAllOptInProcesses().Select(x => new SelectItem() { Text = x.Item2, Value = x.Item1 }); var noOptinList = new SelectItem[] { new SelectItem() { Text = "No opt-in", Value = 0 } }; return optinList.Concat(noOptinList); } } [InitializableModule] [ModuleDependency(typeof(EPiServer.ConnectForCampaign.Implementation.InitializationModule))] public class CustomCampaignConnectorInitialization : IConfigurableModule { public void ConfigureContainer(ServiceConfigurationContext context) { //context.Services.AddSingleton(); //context.Services.AddTransient(); //working context.StructureMap().Configure(c => c.For(typeof(OptinProcessService)).Use(typeof(CustomOptinProcessServive))); } public void Initialize(InitializationEngine context) { } public void Uninitialize(InitializationEngine context) { } } }