protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     LightInjectConfig.Congigurate();
 }
示例#2
0
 protected void Application_Start()
 {
     Database.SetInitializer <ApplicationDbContext>(new AppDbInitializer());
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     LightInjectConfig.Configurate();
 }
示例#3
0
        /// <summary>Integrates Unity when the application starts.</summary>
        public static LightInject.ServiceContainer Start()
        {
            // Register Types
            var container = new LightInject.ServiceContainer();

            LightInjectConfig.RegisterTypes(container);
            Settings.container = container;

            return(container);
        }
示例#4
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     LightInjectConfig.Configurate();
     Database.SetInitializer(new ContentInitializer());
 }
示例#5
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     LightInjectConfig.Configurate();
     log4net.Config.XmlConfigurator.Configure();
 }
示例#6
0
        /// <summary>
        /// Configures the dependency injection container and backing dependencies used by the application.
        /// </summary>
        /// <param name="config">
        /// The configuration object for WebApi.
        /// Configurations are built on to or extended from this object for application functionality.
        /// </param>
        /// <param name="overrides">ONLY FOR TESTING -
        /// REALLY DO NOT USE THIS EXCEPT FOR TESTING IT WILL STOP PROPER CONTAINER VERIFICATION
        /// CANNOT USE RegisterConditional WHILE USING THIS SOLUTION
        /// </param>
        internal static void ConfigureDependencyInjection(HttpConfiguration config, List <Action <ServiceContainer, HttpConfiguration> > overrides = null)
        {
            var serviceContainer = new ServiceContainer();

            serviceContainer.RegisterApiControllers();

            serviceContainer.Register <Models.IRequestMessageProvider, RequestMessageProvider>(new PerContainerLifetime());
            serviceContainer.Register <Elli.Erg.WebApi.IRequestMessageProvider, RequestMessageProvider>(new PerContainerLifetime());

            serviceContainer.Register <ICaller, RequestCaller>(new PerContainerLifetime());
            serviceContainer.Register <ICorrelationProvider, RequestCaller>(new PerContainerLifetime());

            serviceContainer.Register <IRestStorage, HttpRequestMessageRestStorage>(new PerContainerLifetime());
            serviceContainer.Register <IProvider <IRestStorage> >(factory => new LightInjectProvider <IRestStorage>(serviceContainer), new PerContainerLifetime());
            serviceContainer.Register <ICorrelationSettings, Elli.Erg.Correlation.CorrelationSettings>(new PerContainerLifetime());
            serviceContainer.Register <ICorrelationFilter, CorrelationFilter>(new PerContainerLifetime());
            serviceContainer.Register <IProvider <ICorrelationInfo>, CorrelationProvider>(new PerContainerLifetime());
            //serviceContainer.Register<IProvider<ICorrelationInfo>>(factory => new LightInjectProvider<ICorrelationInfo>(serviceContainer), new PerContainerLifetime());

            serviceContainer.Register <IDurationProvider, ApiTimerDurationProvider>(new PerContainerLifetime());
            serviceContainer.Register <IExecutionTimeProvider, ApiTimerDurationProvider>(new PerContainerLifetime());

            serviceContainer.Register <ICustomerInstance, EllieMaeAuthorization>(new PerContainerLifetime());
            serviceContainer.Register <IApiUser, EllieMaeAuthorization>(new PerContainerLifetime());
            serviceContainer.Register <ICustomerClientId, EllieMaeAuthorization>(new PerContainerLifetime());

            //Register filters
            //serviceContainer.Register<IAuthenticationFilter,EPPSAuthenticationFilter>(GetLifetime());
            //serviceContainer.Register<IExceptionFilter, SignalFxFilter>(GetLifetime());
            //serviceContainer.Register<ActionFilterAttribute, SignalFxFilter>(GetLifetime());
            //serviceContainer.Register<ActionFilterAttribute, UserIdReplacementFilter>(GetLifetime());
            //serviceContainer.Register<IExceptionFilter, ServiceLoggingFilter>(GetLifetime());
            //serviceContainer.Register<ActionFilterAttribute, ServiceLoggingFilter>(GetLifetime());

            //config.Filters.Add(new EPPSAuthenticationFilter(
            //    config.DependencyResolver.GetService<ILogger>(),
            //    config.DependencyResolver.GetService<IAuthenticationSecrets>()));

            //config.Filters.Add(new SignalFxFilter(
            //(IMetricsFactory)config.DependencyResolver.GetService(typeof(IMetricsFactory))));

            //config.Filters.Add(new UserIdReplacementFilter());

            //config.Filters.Add(new ServiceLoggingFilter(
            //    (ILogger)config.DependencyResolver.GetService(typeof(ILogger))));


            LightInjectConfig.Build(serviceContainer);
            InterceptorsManager.Register(serviceContainer);

            config.RegisterErgFilter(
                serviceContainer.GetInstance <ICorrelationFilter>(),
                serviceContainer.GetInstance <IRestStorage>());

            ConfigureFilters(GlobalConfiguration.Configuration, serviceContainer);

            serviceContainer.EnablePerWebRequestScope();
            serviceContainer.EnableWebApi(GlobalConfiguration.Configuration);


            //ServicesManager.Register(serviceContainer);


            // these registrations / settings are specific to the webapi integration for the application
            //serviceContainer.EnableHttpRequestMessageTracking(config);
            //container.RegisterWebApiControllers(config);

            // these registrations are dependent upon the webapi runtime


            //var requestMessageProvider = Lifestyle.Singleton.CreateRegistration<RequestMessageProvider>(container);
            //container.AddRegistration(typeof(Models.IRequestMessageProvider), requestMessageProvider);
            //container.AddRegistration(typeof(Elli.Erg.WebApi.IRequestMessageProvider), requestMessageProvider);



            //var requestCallerRegistration = Lifestyle.Singleton.CreateRegistration<RequestCaller>(container);
            //container.AddRegistration(typeof(ICaller), requestCallerRegistration);
            //container.AddRegistration(typeof(ICorrelationProvider), requestCallerRegistration);

            // shared library setup - ERG


            //container.RegisterSingleton<IRestStorage, HttpRequestMessageRestStorage>();
            //container.RegisterSingleton<IProvider<IRestStorage>, LightInjectProvider<IRestStorage>>();
            //container.RegisterSingleton<Elli.Erg.Correlation.ICorrelationSettings, Elli.Erg.Correlation.CorrelationSettings>();
            //container.RegisterSingleton<ICorrelationFilter, CorrelationFilter>();
            //container.RegisterSingleton<IProvider<ICorrelationInfo>, CorrelationProvider>();

            //var timingProvider = Lifestyle.Singleton.CreateRegistration<ApiTimerDurationProvider>(container);
            //container.AddRegistration(typeof(IDurationProvider), timingProvider);
            //container.AddRegistration(typeof(IExecutionTimeProvider), timingProvider);

            //var ellieMaeAuthorizationRegistration = Lifestyle.Singleton.CreateRegistration<EllieMaeAuthorization>(container);
            //container.AddRegistration(typeof(ICustomerInstance), ellieMaeAuthorizationRegistration);
            //container.AddRegistration(typeof(IApiUser), ellieMaeAuthorizationRegistration);
            //container.AddRegistration(typeof(ICustomerClientId), ellieMaeAuthorizationRegistration);


            //serviceContainer.Register(factory => ServiceLocator.Current
            //        .GetInstance<AwsClientInstantiater<IAmazonKeyManagementService, AmazonKeyManagementServiceClient>>()
            //        .GetAwsClient(credentials => new AmazonKeyManagementServiceClient(credentials)));

            //using (serviceContainer.BeginScope())
            //{
            //    config.RegisterErgFilter(
            //   serviceContainer.GetInstance<ICorrelationFilter>(),
            //   serviceContainer.GetInstance<IRestStorage>());


            //    //var firstInstance = container.GetInstance<IFoo>();
            //    //var secondInstance = container.GetInstance<IFoo>();
            //    //Assert.AreSame(firstInstance, secondInstance);
            //}

            ServiceLocator.SetLocatorProvider(() => new LightInjectServiceLocator(serviceContainer));
            //config.RegisterErgFilter(
            //    config.DependencyResolver.GetService<ICorrelationFilter>(),
            //    config.DependencyResolver.GetService<IRestStorage>());

            //config.RegisterErgFilter(
            //   ServiceLocator.Current.GetInstance<ICorrelationFilter>(),
            //   ServiceLocator.Current.GetInstance<IRestStorage>());
        }