コード例 #1
0
        public static void CreateScheduler(IUnityContainer container = null)
        {
            if (container == null)
            {
                container = Bootstrapper.Initialize();
            }

            var schedulerHostStartUpOptionText = ConfigurationManager.AppSettings["SchedulerHost"];

            if (string.IsNullOrEmpty(schedulerHostStartUpOptionText))
            {
                Trace.TraceError("SchedulerHost parameter not found in Web.Config. Scheduler not started");
            }
            else
            {
                StartUpOption startUpOption;
                try
                {
                    startUpOption =
                        (StartUpOption)
                        Enum.Parse(typeof(StartUpOption), schedulerHostStartUpOptionText);
                }
                catch (Exception ex)
                {
                    Trace.TraceError(
                        "Can't parse SchedulerHost parameter from web.config. Scheduler host not started. Expected values: Primary, Secondary, None." +
                        Environment.NewLine + ex);
                    startUpOption = StartUpOption.None;
                }
                if (startUpOption != StartUpOption.None)
                {
                    var schedulerHost = new SchedulerHost(startUpOption == StartUpOption.Primary,
                                                          t => container.Resolve(t, null),
                                                          () =>
                                                          (IAppConfigRepository)container.Resolve(typeof(IAppConfigRepository), null)
                                                          );
                    HostingEnvironment.RegisterObject(schedulerHost);
                    schedulerHost.Start();
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Integrates Unity when the application starts.
        /// </summary>
        public static void Start()
        {
            var container = UnityConfig.GetConfiguredContainer();

            //Add Unity extension for mvc sitemap dependency injection
            container.AddNewExtension <MvcSiteMapProviderContainerExtension>();

            FilterProviders.Providers.Remove(FilterProviders.Providers.OfType <FilterAttributeFilterProvider>().First());
            FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container));

            var dependencyResolver = new UnityDependencyResolver(container);
            var locatorProvider    = new UnityDependencyResolverServiceLocatorProvider(dependencyResolver);

            ServiceLocator.SetLocatorProvider(() => locatorProvider);
            DependencyResolver.SetResolver(dependencyResolver);

            GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);

            if (!AzureCommonHelper.IsAzureEnvironment() && AppConfigConfiguration.Instance.Setup.IsCompleted)
            {
                SchedulerHost.CreateScheduler();
            }
        }
コード例 #3
0
		public static void CreateScheduler(IUnityContainer container = null)
		{
		    if (container == null)
		    {
		        container = Bootstrapper.Initialize();
		    }

		    var schedulerHostStartUpOptionText = ConfigurationManager.AppSettings["SchedulerHost"];
			if (string.IsNullOrEmpty(schedulerHostStartUpOptionText))
			{
				Trace.TraceError("SchedulerHost parameter not found in Web.Config. Scheduler not started");
			}
			else
			{
				StartUpOption startUpOption;
				try
				{
					startUpOption =
						(StartUpOption)
						Enum.Parse(typeof(StartUpOption), schedulerHostStartUpOptionText);
				}
				catch (Exception ex)
				{
					Trace.TraceError(
						"Can't parse SchedulerHost parameter from web.config. Scheduler host not started. Expected values: Primary, Secondary, None." +
						Environment.NewLine + ex);
					startUpOption = StartUpOption.None;
				}
				if (startUpOption != StartUpOption.None)
				{
					var schedulerHost = new SchedulerHost(startUpOption == StartUpOption.Primary,
														  t => container.Resolve(t, null),
														  () =>
														  (IAppConfigRepository)container.Resolve(typeof(IAppConfigRepository), null)
						);
					HostingEnvironment.RegisterObject(schedulerHost);
					schedulerHost.Start();
				}
			}
		}