Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Data.Entity;
- using System.Web;
- using EIT.Foundation.Interception.Ninject;
- using EIT.Foundation.Persistence.Domain.UnitOfWork;
- using EIT.Foundation.Persistence.EntityFramework;
- using EIT.Management.Common.Video;
- using EIT.Management.Configuration.Web.Api.Helpers;
- using EIT.Management.Configuration.Web.Application;
- using EIT.Management.Persistence;
- using EIT.Management.Persistence.Repositories;
- using Microsoft.Web.Infrastructure.DynamicModuleHelper;
- using Ninject;
- using Ninject.Planning.Strategies;
- using Ninject.Syntax;
- using Ninject.Web.Common;
- [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(StartupConfig), "Start")]
- [assembly: WebActivatorEx.ApplicationShutdownMethodAttribute(typeof(StartupConfig), "Stop")]
- namespace EIT.Management.Configuration.Web.Application
- {
- public static class StartupConfig
- {
- private static readonly Bootstrapper Bootstrapper = new Bootstrapper();
- public static void Start()
- {
- DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
- DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
- Bootstrapper.Initialize(CreateKernel);
- }
- public static void Stop()
- {
- Bootstrapper.ShutDown();
- }
- private static IKernel CreateKernel()
- {
- var kernel = new StandardKernel();
- try
- {
- kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
- kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();
- RegisterServices(kernel);
- RegisterDependencyStrategies(kernel);
- return kernel;
- }
- catch
- {
- kernel.Dispose();
- throw;
- }
- }
- private static void RegisterDependencyStrategies(IKernel kernel)
- {
- kernel.Components
- .Add<IPlanningStrategy,
- AttributeInterceptionStrategy<UnitOfWorkAttribute, EfUnitOfWorkInterceptor>>();
- }
- private static void RegisterServices(IBindingRoot kernel)
- {
- kernel.Bind<DbContext>().To<ManagementContext>()
- .InRequestScope();
- kernel.Bind<IUnitOfWork>().To<EfUnitOfWork>()
- .InRequestScope();
- kernel.Bind<ICameraRepository>()
- .To<EfCameraRepository>();
- kernel.Bind<IDisplayRepository>()
- .To<EfDisplayRepository>();
- kernel.Bind<ISetupGroupRepository>()
- .To<EfSetupGroupRepository>();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement