Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save daniiiol/036be44e535768fac2df5eec0aff9180 to your computer and use it in GitHub Desktop.
Save daniiiol/036be44e535768fac2df5eec0aff9180 to your computer and use it in GitHub Desktop.
using Microsoft.Practices.Unity;
using NitroNet.Sitecore;
using NitroNet.Sitecore.Caching;
using NitroNet.Sitecore.Rendering;
using NitroNet.UnityModules;
using NitroNet.ViewEngine.TemplateHandler;
using NitroNet.ViewEngine.TemplateHandler.Grid;
using Sitecore.Mvc.Common;
using System;
using Veil;
namespace NitroNet.Sitecore.UnityModules
{
public class SitecoreUnityModule : IUnityModule
{
public void Configure(IUnityContainer container)
{
UnityContainerExtensions.RegisterType<GridContext>(container, new InjectionMember[1]
{
(InjectionMember) new InjectionFactory((Func<IUnityContainer, object>) (u => (object) GridContext.GetFromRenderingContext(ContextService.Get().GetCurrent<RenderingContext>())))
});
UnityContainerExtensions.RegisterType<ISitecoreRenderingRepository, SitecoreRenderingRepository>(container);
UnityContainerExtensions.RegisterType<ISitecoreCacheManager, SitecoreCacheManager>(container, (LifetimeManager) new ContainerControlledLifetimeManager(), new InjectionMember[0]);
UnityContainerExtensions.RegisterType<INitroTemplateHandlerFactory, SitecoreMvcNitroTemplateHandlerFactory>(container, (LifetimeManager) new ContainerControlledLifetimeManager(), new InjectionMember[0]);
}
}
}
using Microsoft.Practices.Unity;
using NitroNet;
using NitroNet.Mvc;
using NitroNet.ViewEngine;
using NitroNet.ViewEngine.Cache;
using NitroNet.ViewEngine.Config;
using NitroNet.ViewEngine.IO;
using NitroNet.ViewEngine.TemplateHandler;
using NitroNet.ViewEngine.ViewEngines;
using System.Web;
using Veil.Compiler;
using Veil.Helper;
namespace NitroNet.UnityModules
{
public class DefaultUnityModule : IUnityModule
{
private readonly string _basePath;
public DefaultUnityModule(string basePath)
{
this._basePath = basePath;
}
public void Configure(IUnityContainer container)
{
this.RegisterConfiguration(container);
this.RegisterApplication(container);
}
protected virtual void RegisterConfiguration(IUnityContainer container)
{
INitroNetConfig nitroNetConfig = ConfigurationLoader.LoadNitroConfiguration(this._basePath);
UnityContainerExtensions.RegisterInstance<INitroNetConfig>(container, nitroNetConfig);
UnityContainerExtensions.RegisterInstance<IFileSystem>(container, (IFileSystem) new FileSystem(this._basePath, nitroNetConfig));
}
protected virtual void RegisterApplication(IUnityContainer container)
{
UnityContainerExtensions.RegisterInstance<AsyncLocal<HttpContext>>(container, new AsyncLocal<HttpContext>(), (LifetimeManager) new ContainerControlledLifetimeManager());
UnityContainerExtensions.RegisterType<IHelperHandlerFactory, DefaultRenderingHelperHandlerFactory>(container, (LifetimeManager) new ContainerControlledLifetimeManager(), new InjectionMember[0]);
UnityContainerExtensions.RegisterType<IMemberLocator, MemberLocatorFromNamingRule>(container);
UnityContainerExtensions.RegisterType<INamingRule, NamingRule>(container);
UnityContainerExtensions.RegisterType<IModelTypeProvider, DefaultModelTypeProvider>(container);
UnityContainerExtensions.RegisterType<IViewEngine, VeilViewEngine>(container);
UnityContainerExtensions.RegisterType<ICacheProvider, MemoryCacheProvider>(container);
UnityContainerExtensions.RegisterType<IComponentRepository, DefaultComponentRepository>(container, (LifetimeManager) new ContainerControlledLifetimeManager(), new InjectionMember[0]);
UnityContainerExtensions.RegisterType<ITemplateRepository, NitroTemplateRepository>(container, (LifetimeManager) new ContainerControlledLifetimeManager(), new InjectionMember[0]);
UnityContainerExtensions.RegisterType<INitroTemplateHandlerFactory, MvcNitroTemplateHandlerFactory>(container, (LifetimeManager) new ContainerControlledLifetimeManager(), new InjectionMember[0]);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment