From b710cf3e9881c701999a5c6752672e9a2f0c5be0 Mon Sep 17 00:00:00 2001 From: Tobias Studer Date: Thu, 10 Aug 2017 20:53:56 +0200 Subject: [PATCH] Add flexibility to change the base path and add extension points in the services configurator --- .../NitroNetServicesConfigurator.cs | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/NitroNet.Sitecore.Microsoft.DependencyInjection/NitroNetServicesConfigurator.cs b/NitroNet.Sitecore.Microsoft.DependencyInjection/NitroNetServicesConfigurator.cs index 700438d..c6d7c08 100644 --- a/NitroNet.Sitecore.Microsoft.DependencyInjection/NitroNetServicesConfigurator.cs +++ b/NitroNet.Sitecore.Microsoft.DependencyInjection/NitroNetServicesConfigurator.cs @@ -1,5 +1,4 @@ -using System.Web; -using System.Web.Hosting; +using System.Web.Hosting; using Microsoft.Extensions.DependencyInjection; using NitroNet.Mvc; using NitroNet.Sitecore.Caching; @@ -11,6 +10,8 @@ using NitroNet.ViewEngine.TemplateHandler; using NitroNet.ViewEngine.TemplateHandler.Grid; using NitroNet.ViewEngine.ViewEngines; +using Sitecore; +using Sitecore.Configuration; using Sitecore.DependencyInjection; using Sitecore.Mvc.Common; using Veil; @@ -19,6 +20,7 @@ namespace NitroNet.Sitecore.Microsoft.DependencyInjection { + [UsedImplicitly] public class NitroNetServicesConfigurator : IServicesConfigurator { public void Configure(IServiceCollection serviceCollection) @@ -27,7 +29,7 @@ public void Configure(IServiceCollection serviceCollection) RegisterNitroNetSitecore(serviceCollection); } - private static void RegisterNitroNetSitecore(IServiceCollection serviceCollection) + protected virtual void RegisterNitroNetSitecore(IServiceCollection serviceCollection) { serviceCollection.AddTransient(); serviceCollection.AddTransient(); @@ -36,13 +38,13 @@ private static void RegisterNitroNetSitecore(IServiceCollection serviceCollectio serviceCollection.AddSingleton(); } - private static void RegisterNitroNet(IServiceCollection serviceCollection) + protected virtual void RegisterNitroNet(IServiceCollection serviceCollection) { - var rootPath = HostingEnvironment.MapPath("~/"); + var basePath = this.GetNitroNetBasePath(); - var config = ConfigurationLoader.LoadNitroConfiguration(rootPath); + var config = ConfigurationLoader.LoadNitroConfiguration(basePath); serviceCollection.AddSingleton(config); - serviceCollection.AddSingleton(new FileSystem(rootPath, config)); + serviceCollection.AddSingleton(new FileSystem(basePath, config)); serviceCollection.AddSingleton(); serviceCollection.AddTransient(); @@ -54,5 +56,13 @@ private static void RegisterNitroNet(IServiceCollection serviceCollection) serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); } + + protected virtual string GetNitroNetBasePath() + { + var rootPath = HostingEnvironment.MapPath("~/"); + var basePath = PathInfo.Combine(PathInfo.Create(rootPath), PathInfo.Create(Settings.GetAppSetting("NitroNet.BasePath"))); + + return basePath.ToString(); + } } }