Guest User

Untitled

a guest
Jan 6th, 2015
79
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Data.Entity;
  3. using System.Web;
  4. using EIT.Foundation.Interception.Ninject;
  5. using EIT.Foundation.Persistence.Domain.UnitOfWork;
  6. using EIT.Foundation.Persistence.EntityFramework;
  7. using EIT.Management.Common.Video;
  8. using EIT.Management.Configuration.Web.Api.Helpers;
  9. using EIT.Management.Configuration.Web.Application;
  10. using EIT.Management.Persistence;
  11. using EIT.Management.Persistence.Repositories;
  12. using Microsoft.Web.Infrastructure.DynamicModuleHelper;
  13. using Ninject;
  14. using Ninject.Planning.Strategies;
  15. using Ninject.Syntax;
  16. using Ninject.Web.Common;
  17.  
  18. [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(StartupConfig), "Start")]
  19. [assembly: WebActivatorEx.ApplicationShutdownMethodAttribute(typeof(StartupConfig), "Stop")]
  20.  
  21. namespace EIT.Management.Configuration.Web.Application
  22. {
  23.     public static class StartupConfig
  24.     {
  25.         private static readonly Bootstrapper Bootstrapper = new Bootstrapper();
  26.  
  27.         public static void Start()
  28.         {
  29.             DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
  30.             DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
  31.             Bootstrapper.Initialize(CreateKernel);
  32.         }
  33.        
  34.         public static void Stop()
  35.         {
  36.             Bootstrapper.ShutDown();
  37.         }
  38.        
  39.         private static IKernel CreateKernel()
  40.         {
  41.             var kernel = new StandardKernel();
  42.             try
  43.             {
  44.                 kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
  45.                 kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
  46.  
  47.                 RegisterServices(kernel);
  48.                 RegisterDependencyStrategies(kernel);
  49.                 return kernel;
  50.             }
  51.             catch
  52.             {
  53.                 kernel.Dispose();
  54.                 throw;
  55.             }
  56.         }
  57.  
  58.         private static void RegisterDependencyStrategies(IKernel kernel)
  59.         {
  60.             kernel.Components
  61.                 .Add<IPlanningStrategy,
  62.                 AttributeInterceptionStrategy<UnitOfWorkAttribute, EfUnitOfWorkInterceptor>>();
  63.         }
  64.  
  65.         private static void RegisterServices(IBindingRoot kernel)
  66.         {
  67.             kernel.Bind<DbContext>().To<ManagementContext>()
  68.                 .InRequestScope();
  69.             kernel.Bind<IUnitOfWork>().To<EfUnitOfWork>()
  70.                 .InRequestScope();
  71.             kernel.Bind<ICameraRepository>()
  72.                 .To<EfCameraRepository>();
  73.             kernel.Bind<IDisplayRepository>()
  74.                 .To<EfDisplayRepository>();
  75.             kernel.Bind<ISetupGroupRepository>()
  76.                 .To<EfSetupGroupRepository>();
  77.         }        
  78.     }
  79. }
RAW Paste Data