Created
August 10, 2013 13:38
-
-
Save ArveSystad/6200463 to your computer and use it in GitHub Desktop.
Example VirtualRoleInitializer for EPiServer utilizing PlugInSettings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[GuiPlugIn(Area = PlugInArea.None, Description = "Web Application Settings")] | |
public sealed class ApplicationSettings | |
{ | |
private static ApplicationSettings instance; | |
public ApplicationSettings() | |
{ | |
PlugInSettings.SettingsChanged += UpdateVirtualRoles; | |
} | |
void UpdateVirtualRoles(object sender, EventArgs e) | |
{ | |
VirtualRoleInitializer.RegisterVirtualRoles(); | |
} | |
public static ApplicationSettings Instance | |
{ | |
get | |
{ | |
if (instance == null) | |
{ | |
instance = new ApplicationSettings(); | |
PlugInSettings.AutoPopulate(instance); | |
} | |
return instance; | |
} | |
} | |
[PlugInProperty(Description = "Awesome, necessary configuration", AdminControl = typeof(TextBox), AdminControlValue = "Text")] | |
public string MyAwesomeConfigValue { get; set; } | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[InitializableModule] | |
[ModuleDependency((typeof(EPiServer.Web.InitializationModule)))] | |
public class VirtualRoleInitializer : IInitializableModule | |
{ | |
public void Initialize(InitializationEngine context) | |
{ | |
RegisterVirtualRoles(); | |
} | |
public static void RegisterVirtualRoles() | |
{ | |
var virtualRoleRepository = VirtualRoleRepository<VirtualRoleProviderBase>.GetDefault(); | |
string role = virtualRoleRepository.GetAllRoles().FirstOrDefault(x => x.Contains(typeof(MyVirtualRoleType).Name)); | |
if(role != null) | |
virtualRoleRepository.Unregister(role, true); // First, remove the role if it exists already. I don't want to have duplicate roles | |
virtualRoleRepository.Register(typeof(MyVirtualRoleType).Name, new MyVirtualRoleType | |
{ | |
SomeProperty = ApplicationSettings.Instance.MyAwesomeConfigValue | |
}); | |
} | |
public void Uninitialize(InitializationEngine context) { } | |
public void Preload(string[] parameters) { } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment