示例#1
0
 public RoleService(IRoleRepository repository, IValidationService validator, IPluginEngine pluginEngine, OxiteContext context)
 {
     this.repository   = repository;
     this.validator    = validator;
     this.pluginEngine = pluginEngine;
     this.context      = context;
 }
        public static void Reload(this PluginScriptRegistry registry, IPluginEngine pluginEngine)
        {
            registry.Clear();

            foreach (PluginContainer pluginContainer in pluginEngine.GetInstalledAndEnabledPlugins())
                pluginContainer.RegisterScripts(registry);
        }
示例#3
0
 public FormsAuthenticationUserService(IUserRepository repository, IValidationService validator, IPluginEngine pluginEngine, OxiteContext context)
 {
     this.repository   = repository;
     this.validator    = validator;
     this.pluginEngine = pluginEngine;
     this.context      = context;
 }
 public PluginController(IPluginService pluginService, IPluginEngine pluginEngine, OxiteContext context)
 {
     this.pluginService = pluginService;
     this.pluginEngine  = pluginEngine;
     this.context       = context;
     ValidateRequest    = false;
 }
 public SearchResultService(ISearchResultRepository repository, IPluginEngine pluginEngine, IModulesLoaded modules, OxiteContext context)
 {
     this.repository = repository;
     this.pluginEngine = pluginEngine;
     this.cache = modules.GetModules<IOxiteCacheModule>().Reverse().First();
     this.context = context;
 }
示例#6
0
        public PluginsService(IConfiguration configuration,
                              IPluginEngine pluginEngine,
                              IPackageRepository packageRepository,
                              IAuthenticationManager authenticationManager)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (pluginEngine == null)
            {
                throw new ArgumentNullException("pluginEngine");
            }
            if (packageRepository == null)
            {
                throw new ArgumentNullException("packageRepository");
            }
            if (authenticationManager == null)
            {
                throw new ArgumentNullException("authenticationManager");
            }

            _configuration         = configuration;
            _pluginEngine          = pluginEngine;
            _packageRepository     = packageRepository;
            _authenticationManager = authenticationManager;
        }
示例#7
0
        public static Post ProcessDisplayOfPost(this IPluginEngine pluginEngine, OxiteContext context, Func <Post> getPost)
        {
            PostForProcessing post = new PostForProcessing(getPost());

            pluginEngine.ExecuteAll("ProcessDisplayOfPost", new { context, post });

            return(post.ToPost());
        }
示例#8
0
 public BlogService(IBlogRepository repository, IValidationService validator, IPluginEngine pluginEngine, IModulesLoaded modules, OxiteContext context)
 {
     this.repository   = repository;
     this.validator    = validator;
     this.pluginEngine = pluginEngine;
     this.cache        = modules.GetModules <IOxiteCacheModule>().Reverse().First();
     this.context      = context;
 }
示例#9
0
 public SetupService(ISiteService siteService, IUserService userService, IUserRepository repository, IValidationService validator, IPluginEngine pluginEngine, ILanguageService languageService)
 {
     this.siteService     = siteService;
     this.userService     = userService;
     this.repository      = repository;
     this.validator       = validator;
     this.pluginEngine    = pluginEngine;
     this.languageService = languageService;
 }
        public static void Reload(this PluginTemplateRegistry registry, IPluginEngine pluginEngine)
        {
            registry.Clear();

            foreach (PluginContainer pluginContainer in pluginEngine.GetInstalledAndEnabledPlugins())
            {
                pluginContainer.RegisterTemplates(registry);
            }
        }
示例#11
0
 public ApiModule(IPluginEngine pluginEngine)
 {
     Get["/api/scripts"] = _ => (from pluginManager in pluginEngine.GetAll()
                                 where pluginManager.State == PluginState.Loaded
                                 let manifest = pluginManager.Manifest
                                                where manifest.UserInterface != null
                                                where manifest.UserInterface.BackgroundScripts.Any()
                                                from backgroundScript in manifest.UserInterface.BackgroundScripts
                                                select string.Concat("plugins/", pluginManager.Package.Id, "/", backgroundScript)).ToArray();
 }
示例#12
0
 public ApiModule(IPluginEngine pluginEngine)
 {
     Get["/api/scripts"] = _ => (from pluginManager in pluginEngine.GetAll()
         where pluginManager.State == PluginState.Loaded
         let manifest = pluginManager.Manifest
         where manifest.UserInterface != null
         where manifest.UserInterface.BackgroundScripts.Any()
         from backgroundScript in manifest.UserInterface.BackgroundScripts
         select string.Concat("plugins/", pluginManager.Package.Id, "/", backgroundScript)).ToArray();
 }
示例#13
0
        public DefaultHost(IDataRepository data, IBitTorrentEngine torrentEngine, IMigrationRunner runner, IPluginEngine pluginEngine, IHttpServer httpServer)
        {
            _data = data;
            _torrentEngine = torrentEngine;
            _migratorRunner = runner;
            _pluginEngine = pluginEngine;
            _httpServer = httpServer;

            AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
        }
        public static PluginContainer GetPlugin(this IPluginEngine pluginEngine, Plugin plugin)
        {
            PluginContainer pluginContainer = null;

            if (plugin.ID != Guid.Empty || !string.IsNullOrEmpty(plugin.VirtualPath))
            {
                pluginContainer = pluginEngine.GetPlugins(p => (p.Tag != null && p.Tag is Plugin && ((Plugin)p.Tag).ID == plugin.ID) || string.Compare(p.VirtualPath, plugin.VirtualPath, true) == 0).FirstOrDefault();
            }

            return(pluginContainer);
        }
示例#15
0
 public HadoukenService(ILogger logger,
                        IEnumerable <IStartupTask> startupTasks,
                        IPluginServiceHost rpcServiceHost,
                        IHttpBackendServer backendServer,
                        IPluginEngine pluginEngine)
 {
     _logger         = logger;
     _startupTasks   = startupTasks;
     _rpcServiceHost = rpcServiceHost;
     _backendServer  = backendServer;
     _pluginEngine   = pluginEngine;
 }
示例#16
0
 public HadoukenService(ILogger logger,
     IEnumerable<IStartupTask> startupTasks,
     IPluginServiceHost rpcServiceHost,
     IHttpBackendServer backendServer,
     IPluginEngine pluginEngine)
 {
     _logger = logger;
     _startupTasks = startupTasks;
     _rpcServiceHost = rpcServiceHost;
     _backendServer = backendServer;
     _pluginEngine = pluginEngine;
 }
示例#17
0
 public PluginService(IPluginRepository repository, IValidationService validator, IPluginEngine pluginEngine, IModulesLoaded modules, PluginTemplateRegistry pluginTemplateRegistry, PluginStyleRegistry pluginStyleRegistry, PluginScriptRegistry pluginScriptRegistry, OxiteContext context)
 {
     this.repository             = repository;
     this.validator              = validator;
     this.pluginEngine           = pluginEngine;
     this.cache                  = modules.GetModules <IOxiteCacheModule>().Reverse().First();
     this.modules                = modules;
     this.pluginTemplateRegistry = pluginTemplateRegistry;
     this.pluginStyleRegistry    = pluginStyleRegistry;
     this.pluginScriptRegistry   = pluginScriptRegistry;
     this.context                = context;
 }
示例#18
0
        public static IEnumerable <Post> ProcessDisplayOfPosts(this IPluginEngine pluginEngine, OxiteContext context, Func <IEnumerable <Post> > getPosts)
        {
            IEnumerable <Post> posts    = getPosts();
            List <Post>        newPosts = new List <Post>();

            foreach (Post post in posts)
            {
                newPosts.Add(pluginEngine.ProcessDisplayOfPost(context, () => post));
            }

            return(newPosts);
        }
示例#19
0
        public static IPageOfItems <Post> ProcessDisplayOfPosts(this IPluginEngine pluginEngine, OxiteContext context, Func <IPageOfItems <Post> > getPosts)
        {
            IPageOfItems <Post> posts    = getPosts();
            List <Post>         newPosts = new List <Post>();

            foreach (Post post in posts)
            {
                newPosts.Add(pluginEngine.ProcessDisplayOfPost(context, () => post));
            }

            return(new PageOfItems <Post>(newPosts, posts.PageIndex, posts.PageSize, posts.TotalItemCount));
        }
示例#20
0
 public PostService(IPostRepository repository, ITrackbackOutboundRepository trackbackOutboundRepository, UrlHelper urlHelper, IRegularExpressions expressions, IValidationService validator, IPluginEngine pluginEngine, ITagService tagService, ICommentService commentService, IModulesLoaded modules, OxiteContext context)
 {
     this.repository = repository;
     this.trackbackOutboundRepository = trackbackOutboundRepository;
     this.urlHelper      = urlHelper;
     this.expressions    = expressions;
     this.validator      = validator;
     this.pluginEngine   = pluginEngine;
     this.tagService     = tagService;
     this.commentService = commentService;
     this.cache          = modules.GetModules <IOxiteCacheModule>().Reverse().First();
     this.context        = context;
 }
 public BlogsCommentService(ICommentRepository commentRepository, IBlogsCommentRepository blogsCommentRepository, IPostRepository postRepository, ILanguageRepository languageRepository, ILocalizationRepository localizationRepository, IMessageOutboundRepository messageOutboundRepository, UrlHelper urlHelper, IValidationService validator, IPluginEngine pluginEngine, IModulesLoaded modules, OxiteContext context)
 {
     this.commentRepository         = commentRepository;
     this.blogsCommentRepository    = blogsCommentRepository;
     this.postRepository            = postRepository;
     this.languageRepository        = languageRepository;
     this.localizationRepository    = localizationRepository;
     this.messageOutboundRepository = messageOutboundRepository;
     this.urlHelper    = urlHelper;
     this.validator    = validator;
     this.pluginEngine = pluginEngine;
     this.cache        = modules.GetModules <IOxiteCacheModule>().Reverse().First();
     this.context      = context;
 }
 public ConferencesCommentService(IConferencesCommentRepository conferencesCommentRepository, ICommentRepository commentRepository, IScheduleItemRepository scheduleItemRepository, IMessageOutboundRepository messageOutboundRepository, ILanguageRepository languageRepository, ILocalizationRepository localizationRepository, AbsolutePathHelper absolutePathHelper, IValidationService validator, IPluginEngine pluginEngine, IModulesLoaded modules, OxiteContext context)
 {
     this.conferencesCommentRepository = conferencesCommentRepository;
     this.commentRepository            = commentRepository;
     this.scheduleItemRepository       = scheduleItemRepository;
     this.messageOutboundRepository    = messageOutboundRepository;
     this.languageRepository           = languageRepository;
     this.localizationRepository       = localizationRepository;
     this.absolutePathHelper           = absolutePathHelper;
     this.validator    = validator;
     this.pluginEngine = pluginEngine;
     this.cache        = modules.GetModules <IOxiteCacheModule>().Reverse().First();
     this.context      = context;
 }
示例#23
0
        public PluginsService(IConfiguration configuration,
            IPluginEngine pluginEngine,
            IPackageRepository packageRepository,
            IAuthenticationManager authenticationManager)
        {
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (pluginEngine == null) throw new ArgumentNullException("pluginEngine");
            if (packageRepository == null) throw new ArgumentNullException("packageRepository");
            if (authenticationManager == null) throw new ArgumentNullException("authenticationManager");

            _configuration = configuration;
            _pluginEngine = pluginEngine;
            _packageRepository = packageRepository;
            _authenticationManager = authenticationManager;
        }
示例#24
0
        public void Unload()
        {
            IPluginEngine pluginEngine = container.Resolve <IPluginEngine>();

            // unload plugins that are installed
            foreach (Plugin plugin in container.Resolve <IPluginService>().GetPlugins())
            {
                PluginContainer pluginContainer = pluginEngine.GetPlugin(plugin);

                if (pluginContainer != null)
                {
                    pluginContainer.Unload();
                }
            }

            container.RegisterInstance(pluginEngine);
        }
示例#25
0
        public PluginsModule(IPluginEngine pluginEngine, IJsonRpcClient rpcClient)
            : base("plugins")
        {
            Get["/{id}/{path*}"] = _ =>
            {
                string id   = _.id;
                string path = _.path;

                var plugin = pluginEngine.Get(id);
                if (plugin == null)
                {
                    return(404);
                }

                var data = rpcClient.Call <byte[]>(string.Format("{0}.resource.get", id), new[] { path });
                if (data == null)
                {
                    return(404);
                }

                var contentType = MimeTypes.GetMimeType(path);
                return(Response.FromStream(() => new MemoryStream(data), contentType));
            };
        }
示例#26
0
        public PluginsModule(IPluginEngine pluginEngine, IJsonRpcClient rpcClient)
            : base("plugins")
        {
            Get["/{id}/{path*}"] = _ =>
            {
                string id = _.id;
                string path = _.path;

                var plugin = pluginEngine.Get(id);
                if (plugin == null)
                {
                    return 404;
                }

                var data = rpcClient.Call<byte[]>(string.Format("{0}.resource.get", id), new[] {path});
                if (data == null)
                {
                    return 404;
                }

                var contentType = MimeTypes.GetMimeType(path);
                return Response.FromStream(() => new MemoryStream(data), contentType);
            };
        }
 private static Func <PluginContainer, bool> getInstalledAndEnabled(IPluginEngine pluginEngine)
 {
     return(p => p.IsLoaded && p.Tag != null && p.Tag is Plugin && ((Plugin)p.Tag).Enabled);
 }
示例#28
0
 public EventsService(ILogger logger, IPluginEngine pluginEngine, IJsonRpcClient rpcClient)
 {
     _logger = logger;
     _pluginEngine = pluginEngine;
     _rpcClient = rpcClient;
 }
示例#29
0
 public GetPlugins(IPluginEngine pluginEngine)
 {
     _pluginEngine = pluginEngine;
 }
示例#30
0
        public static IEnumerable <PluginContainer> FillContainer(this IEnumerable <PluginContainer> pluginContainers, IPluginEngine pluginEngine)
        {
            foreach (PluginContainer pluginContainer in pluginContainers)
            {
                Plugin plugin = pluginContainer.Tag as Plugin;

                if (plugin != null)
                {
                    plugin.Container = pluginEngine.GetPlugin(plugin);
                }
            }

            return(pluginContainers);
        }
 public static bool AnyTrue(this IPluginEngine pluginEngine, string operation, object parameters)
 {
     return(pluginEngine.AnyTrue(operation, parameters, getInstalledAndEnabled(pluginEngine)));
 }
示例#32
0
        public static PluginContainer FillContainer(this PluginContainer pluginContainer, IPluginEngine pluginEngine)
        {
            Plugin plugin = pluginContainer.Tag as Plugin;

            if (plugin != null)
            {
                plugin.Container = pluginEngine.GetPlugin(plugin);
            }

            return(pluginContainer);
        }
 private static Func <PluginContainer, bool> GetNotInstalled(IPluginEngine pluginEngine)
 {
     return(p => p.Tag == null || !(p.Tag is Plugin));
 }
示例#34
0
        public void Initialize()
        {
            ISiteService           siteService            = container.Resolve <ISiteService>();
            IPluginEngine          pluginEngine           = container.Resolve <IPluginEngine>();
            PluginTemplateRegistry pluginTemplateRegistry = container.Resolve <PluginTemplateRegistry>();
            RouteCollection        routes = container.Resolve <RouteCollection>();
            PluginScriptRegistry   pluginScriptRegistry = container.Resolve <PluginScriptRegistry>();
            PluginStyleRegistry    pluginStyleRegistry  = container.Resolve <PluginStyleRegistry>();

            pluginEngine.AutoInitializePlugins = false;

            // load dynamically compiled assemblies
            pluginEngine.LoadAssembliesFromCodeFiles("~" + siteService.GetSite().PluginsPath);

            // load plugins that are in assemblies
            pluginEngine.LoadPlugins();

            // initialize plugins that are installed
            foreach (Plugin plugin in container.Resolve <IPluginService>().GetPlugins())
            {
                PluginContainer pluginContainer = pluginEngine.GetPlugin(plugin);

                if (pluginContainer != null)
                {
                    plugin.Container    = pluginContainer;
                    pluginContainer.Tag = plugin;

                    if (pluginContainer.IsLoaded)
                    {
                        pluginContainer.ApplyProperties(plugin.ExtendedProperties);
                        pluginContainer.Initialize();

                        if (plugin.Enabled)
                        {
                            pluginContainer.RegisterTemplates(pluginTemplateRegistry);
                            pluginContainer.RegisterRoutes(routes);
                            pluginContainer.RegisterScripts(pluginScriptRegistry);
                            pluginContainer.RegisterStyles(pluginStyleRegistry);
                        }
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(plugin.VirtualPath))
                    {
                        pluginContainer = new PluginContainer(new PluginAssemblyContainer(plugin.VirtualPath, (Assembly)null), new PluginFileNotFoundException(plugin.VirtualPath));
                    }

                    if (pluginContainer != null)
                    {
                        plugin.Container    = pluginContainer;
                        pluginContainer.Tag = plugin;

                        pluginEngine.AddPlugin(pluginContainer);
                    }
                }
            }

            container.RegisterInstance(pluginStyleRegistry);
            container.RegisterInstance(pluginScriptRegistry);
            container.RegisterInstance(pluginTemplateRegistry);
            container.RegisterInstance(pluginEngine);
        }
        public static IEnumerable <Plugin> FillContainer(this IEnumerable <Plugin> plugins, IPluginEngine pluginEngine)
        {
            plugins.ToList().ForEach(p => p.FillContainer(pluginEngine));

            return(plugins);
        }
        public static Plugin FillContainer(this Plugin plugin, IPluginEngine pluginEngine)
        {
            plugin.Container = pluginEngine.GetPlugin(plugin);

            return(plugin);
        }
示例#37
0
 public GetPluginFile(IPluginEngine pluginEngine)
 {
     _pluginEngine = pluginEngine;
 }
 private static Func <PluginContainer, bool> GetInstalled(IPluginEngine pluginEngine)
 {
     return(p => p.Tag != null && p.Tag is Plugin);
 }
示例#39
0
 public OrderController(IPluginEngine pluginEngine) {
     _pluginEngine = pluginEngine;
     this.CurrentCustomer = Customer.GetExistingOrCreate(this.GetCommerceUserName());
     this.SiteData = KonaSite.GetSite("/");
 }