public void ServiceRegistration(IDexterContainer container) { container.Register<ICallContextFactory, DexterCallContextFactory>(LifeCycle.Singleton); container.Register<IAsyncCallContext, AsyncCallContext>(LifeCycle.Singleton); container.Register<IWebCallContext, WebCallContext>(LifeCycle.Singleton); container.Register<ITaskExecutor, TaskExecutor.TaskExecutor>(LifeCycle.Singleton); }
/// <summary> /// Installs all the component needed by the assembly. /// </summary> /// <param name="container"> The container. </param> public void ServiceRegistration(IDexterContainer container) { container.Register<IHttpModule, PerWebRequestLifestyleModule>(LifeCycle.Singleton); container.Register<IDependencyResolver, DexterDependencyResolver>(LifeCycle.Singleton); container.Register<System.Web.Http.Dependencies.IDependencyResolver, Web.WebApi.DexterDependencyResolver>(LifeCycle.Singleton); container.Register<IHttpControllerActivator, Web.WebApi.DexterHttpControllerActivator>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IJobFactory, DexterJobFactory>(LifeCycle.Singleton); StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory(); IScheduler scheduler = stdSchedulerFactory.GetScheduler(); scheduler.JobFactory = container.Resolve<IJobFactory>(); container.Register(typeof(ISchedulerFactory), stdSchedulerFactory, LifeCycle.Singleton); container.Register(typeof(IScheduler), scheduler, LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IJobFactory, DexterJobFactory>(LifeCycle.Singleton); StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory(); IScheduler scheduler = stdSchedulerFactory.GetScheduler(); scheduler.JobFactory = container.Resolve <IJobFactory>(); container.Register(typeof(ISchedulerFactory), stdSchedulerFactory, LifeCycle.Singleton); container.Register(typeof(IScheduler), scheduler, LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IPostDataService, PostDataService>(LifeCycle.Singleton); container.Register<IPageDataService, PageDataService>(LifeCycle.Singleton); container.Register<ICommentDataService, CommentDataService>(LifeCycle.Singleton); container.Register<IConfigurationDataService, ConfigurationDataService>(LifeCycle.Singleton); container.Register<ICategoryDataService, CategoryDataService>(LifeCycle.Singleton); container.Register<IDexterCall, DexterCall>(LifeCycle.Singleton); container.Register<ISessionFactory, SessionFactory>(LifeCycle.Singleton); container.Register<IPluginDataService, PluginDataService>(LifeCycle.Singleton); container.Register<IRepositoryFactory, RepositoryFactory>(LifeCycle.Singleton); this.InitializeDocumentStore(); container.Register(typeof(IDocumentStore), store, LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IPostDataService, PostDataService>(LifeCycle.Singleton); container.Register <IPageDataService, PageDataService>(LifeCycle.Singleton); container.Register <ICommentDataService, CommentDataService>(LifeCycle.Singleton); container.Register <IConfigurationDataService, ConfigurationDataService>(LifeCycle.Singleton); container.Register <ICategoryDataService, CategoryDataService>(LifeCycle.Singleton); container.Register <IDexterCall, DexterCall>(LifeCycle.Singleton); container.Register <ISessionFactory, SessionFactory>(LifeCycle.Singleton); container.Register <IPluginDataService, PluginDataService>(LifeCycle.Singleton); container.Register <IRepositoryFactory, RepositoryFactory>(LifeCycle.Singleton); this.InitializeDocumentStore(); container.Register(typeof(IDocumentStore), store, LifeCycle.Singleton); }
/// <summary> /// Starts up. /// </summary> public static void StartUp() { if (started) { return; } ReadOnlyCollection <Assembly> alpAssemblies = new ReadOnlyCollection <Assembly>(BuildManager.GetReferencedAssemblies().Cast <Assembly>().Where(x => x.FullName.StartsWith("Dexter")).ToList()); Type containerType = null; foreach (Assembly a in alpAssemblies) { foreach (Type t in a.GetTypes()) { if (!t.IsInterface && !t.IsAbstract && typeof(IDexterContainerFactory).IsAssignableFrom(t)) { containerType = t; } } } if (containerType == null) { throw new ArgumentException("Unable to find the DI Implementation."); } IDexterContainerFactory factory = Activator.CreateInstance(containerType) as IDexterContainerFactory; if (factory == null) { throw new ConfigurationErrorsException(string.Format("The type {0} does not implement the IDexterContainerFactory interface.", containerType.FullName)); } Engine = factory.Create(); Engine.Register(typeof(IDexterContainer), Engine, LifeCycle.Singleton); alpAssemblies.ForEach(x => Engine.Register <ILayerInstaller>(x, LifeCycle.Singleton)); ILayerInstaller[] coreInstaller = Engine.ResolveAll <ILayerInstaller>(); coreInstaller.ForEach(x => x.ServiceRegistration(Engine)); coreInstaller.ForEach(x => x.ServiceRegistrationComplete(Engine)); coreInstaller.ForEach(x => x.ApplicationStarted(Engine)); started = true; }
public void EnablePlugin(string pluginId, Version version) { PluginDto plugin = this.pluginDataService.GetPlugin(pluginId, version); if (plugin == null) { throw new DexterException("Unable to find the specified plugin"); } string pluginPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"App_Data\Extensions\Plugins", plugin.Title, @"\Assemblies"); if (!Directory.Exists(pluginPath)) { throw new DirectoryNotFoundException(string.Format("Unable to find the specified path '{0}'.", pluginPath)); } string[] files = Directory.GetFiles(pluginPath, "*.dll", SearchOption.TopDirectoryOnly); if (files.Length < 1) { this.logger.WarnFormat("Unable to find the assemblies for the plugin '{0}'", plugin.Title); return; } foreach (var file in files) { var pluginAssemblies = Assembly.LoadFrom(file); Type pluginType = pluginAssemblies.GetTypes().FirstOrDefault(t => !t.IsInterface && !t.IsAbstract && typeof(IPlugin).IsAssignableFrom(t)); if (pluginType == null) { logger.DebugFormat("The is not an IPlugin for the assemly '{0}' for the plugin '{1}'.", Path.GetFileName(file), plugin.Title); continue; } container.Register(pluginType, pluginType, LifeCycle.Singleton); var pluginInstance = (IPlugin)DexterContainer.Resolve(pluginType); if (!plugin.IsInstalled) { logger.DebugFormat("Calling Setup method for '{0}' for the plugin '{1}'.", pluginType, plugin.Title); pluginInstance.Setup(); plugin.IsInstalled = true; } logger.DebugFormat("Calling Initialize method for '{0}' for the plugin '{1}'.", pluginType, plugin.Title); pluginInstance.Initialize(); plugin.Enabled = true; } this.pluginDataService.UpdatePlugin(plugin); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IPostService, PostService>(LifeCycle.Singleton); container.Register<IPageService, PageService>(LifeCycle.Singleton); container.Register<IConfigurationService, ConfigurationService>(LifeCycle.Singleton); container.Register<ICommentService, CommentService>(LifeCycle.Singleton); container.Register<ISetupService, SetupService>(LifeCycle.Singleton); container.Register<ICategoryService, CategoryService>(LifeCycle.Singleton); container.Register<IPluginService, PluginService>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IPostService, PostService>(LifeCycle.Singleton); container.Register <IPageService, PageService>(LifeCycle.Singleton); container.Register <IConfigurationService, ConfigurationService>(LifeCycle.Singleton); container.Register <ICommentService, CommentService>(LifeCycle.Singleton); container.Register <ISetupService, SetupService>(LifeCycle.Singleton); container.Register <ICategoryService, CategoryService>(LifeCycle.Singleton); container.Register <IPluginService, PluginService>(LifeCycle.Singleton); }
private static void Register <T>(IDexterContainer container, IJobDetail job, ITrigger trigger, bool enabled) { IScheduler scheduler = container.Resolve <IScheduler>(); if (scheduler.CheckExists(job.Key) == false) { scheduler.ScheduleJob(job, trigger); } else { if (!enabled) { IList <ITrigger> dbTrigger = scheduler.GetTriggersOfJob(job.Key); scheduler.UnscheduleJobs(dbTrigger.Select(x => x.Key).ToList()); } else { scheduler.RescheduleJob(trigger.Key, trigger); } } container.Register(typeof(T), typeof(T), LifeCycle.Transient); }
public void ServiceRegistration(IDexterContainer container) { container.Register<FilterAttribute, ExceptionHandlingAttribute>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IUserContext, UserContext.UserContext>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IUserContext, UserContext.UserContext>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<ILocalizationProvider, LocalizationProvider>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IUrlBuilder, UrlBuilder>(LifeCycle.Singleton); container.Register<IAdminUrlBuilder, AdminUrlBuilder>(LifeCycle.Singleton); container.Register<IPostUrlBuilder, PostUrlBuilder>(LifeCycle.Singleton); container.Register<IPageUrlBuilder, PageUrlBuilder>(LifeCycle.Singleton); container.Register<ICategoryUrlBuilder, CategoryUrlBuilder>(LifeCycle.Singleton); container.Register<IAdminPageUrlBuilder, AdminPageUrlBuilder>(LifeCycle.Singleton); container.Register<IAdminPostUrlBuilder, AdminPostUrlBuilder>(LifeCycle.Singleton); container.Register<IAdminCategoryUrlBuilder, AdminCategoryUrlBuilder>(LifeCycle.Singleton); container.Register<IAdminAccountUrlBuilder, AdminAccountUrlBuilder>(LifeCycle.Singleton); container.Register<IFeedUrlBuilder, FeedUrlBuilder>(LifeCycle.Singleton); container.Register<IServiceUrlBuilder, ServiceUrlBuilder>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <FilterAttribute, ExceptionHandlingAttribute>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IRoutingService, RoutingService>(LifeCycle.Singleton); }
/// <summary> /// Installs all the component needed by the assembly. /// </summary> /// <param name="container"> The container. </param> public void ServiceRegistration(IDexterContainer container) { container.Register <ICacheProvider, InProcCacheProvider>(LifeCycle.PerWebRequest); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IUrlBuilder, UrlBuilder>(LifeCycle.Singleton); container.Register <IAdminUrlBuilder, AdminUrlBuilder>(LifeCycle.Singleton); container.Register <IPostUrlBuilder, PostUrlBuilder>(LifeCycle.Singleton); container.Register <IPageUrlBuilder, PageUrlBuilder>(LifeCycle.Singleton); container.Register <ICategoryUrlBuilder, CategoryUrlBuilder>(LifeCycle.Singleton); container.Register <IAdminPageUrlBuilder, AdminPageUrlBuilder>(LifeCycle.Singleton); container.Register <IAdminPostUrlBuilder, AdminPostUrlBuilder>(LifeCycle.Singleton); container.Register <IAdminCategoryUrlBuilder, AdminCategoryUrlBuilder>(LifeCycle.Singleton); container.Register <IAdminAccountUrlBuilder, AdminAccountUrlBuilder>(LifeCycle.Singleton); container.Register <IFeedUrlBuilder, FeedUrlBuilder>(LifeCycle.Singleton); container.Register <IServiceUrlBuilder, ServiceUrlBuilder>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register<IPackageManager, PackageManager>(LifeCycle.Singleton); container.Register<IPackageInstaller, Services.PackageInstaller>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <ILocalizationProvider, LocalizationProvider>(LifeCycle.Singleton); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IPackageManager, PackageManager>(LifeCycle.Singleton); container.Register <IPackageInstaller, Services.PackageInstaller>(LifeCycle.Singleton); }
/// <summary> /// Installs all the component needed by the assembly. /// </summary> /// <param name="container"> The container. </param> public void ServiceRegistration(IDexterContainer container) { container.Register<ICacheProvider, InProcCacheProvider>(LifeCycle.PerWebRequest); }
public void ServiceRegistration(IDexterContainer container) { container.Register <IRoutingService, RoutingService>(LifeCycle.Singleton); }