public UploadModuleResult Upload(string moduleName, Stream moduleStream, string user) { var result = _moduleInstaller.Upload(moduleName, moduleStream, user); result.SourceModuleInfo = ModuleInfo.Get(result.ModuleName); return(result); }
public void CopyAssemblies(string moduleName, bool @overrideFiles) { ModuleInfo sourceModuleInfo = ModuleInfo.Get(moduleName); _moduleUninstaller.RemoveAssemblies(moduleName); _moduleUninstaller.RemoveModuleArea(moduleName); _moduleInstaller.CopyFiles(moduleName, overrideFiles); }
public ModuleInfo_Metadata(string moduleName, string siteName) { var moduleInfo = ModuleInfo.Get(moduleName); this.ModuleName = moduleInfo.ModuleName; this.Version = moduleInfo.Version; this.KoobooCMSVersion = moduleInfo.KoobooCMSVersion; this.Settings = ModuleInfo.GetSiteModuleSettings(moduleName, siteName); }
public void RunInstallation(string moduleName, ControllerContext controllerContext, string user) { RunEvent(moduleName, controllerContext); ModuleInfo moduleInfo = ModuleInfo.Get(moduleName); var installationFile = this._installationFileManager.ArchiveTempInstallationPath(moduleName, moduleInfo.Version); this._installationFileManager.LogInstallation(moduleName, new InstallationContext(moduleInfo.ModuleName, moduleInfo.Version, DateTime.UtcNow) { User = user, InstallationFileName = installationFile }); }
public virtual ActionResult GoingToUninstall(string uuid) { ModuleInfo moduleInfo = ModuleInfo.Get(uuid); //var sites = Manager.AllSitesInModule(uuid); //if (sites.Count() > 0) //{ // return View(sites.Select(it => new SiteModuleRelationModel(it))); //} return(RedirectToAction("Uninstall", ControllerContext.RequestContext.AllRouteValues())); }
public void OnInstalling(ControllerContext controllerContext) { var moduleInfo = ModuleInfo.Get(SampleAreaRegistration.ModuleName); var installModel = new InstallModel(); Kooboo.CMS.Sites.Extension.ModelBindHelper.BindModel <InstallModel>(installModel, controllerContext); moduleInfo.DefaultSettings.CustomSettings["DatabaseServer"] = installModel.DatabaseServer; moduleInfo.DefaultSettings.CustomSettings["UserName"] = installModel.UserName; moduleInfo.DefaultSettings.CustomSettings["Password"] = installModel.Password; ModuleInfo.Save(moduleInfo); // Add code here that will be executed when the module installing. }
//#region Unzip //public string Unzip(ref string moduleName, Stream moduleStream, string user) //{ // string error = ""; // using (ModuleStreamEntry moduleEntry = new ModuleStreamEntry(moduleName, moduleStream)) // { // if (!moduleEntry.IsValid()) // { // error = "The module is invalid.".Localize(); // return error; // } // var moduleInfo = moduleEntry.ModuleInfo; // if (moduleInfo == null) // { // error = "The module.config file is invalid.".Localize(); // return error; // } // moduleName = moduleEntry.ModuleName; // ModulePath modulePath = new ModulePath(moduleEntry.ModuleName); // var modulePhysicalPath = modulePath.PhysicalPath; // if (Directory.Exists(modulePath.PhysicalPath)) // { // error = "The module name already exists.".Localize(); // return error; // } // //save the module version // var installationFile = this._installationFileManager.SaveInstallationFile(moduleEntry); // this._installationFileManager.LogInstallation(moduleName, new InstallationContext(moduleInfo.ModuleName, moduleInfo.Version, DateTime.UtcNow) { User = user, InstallationFileName = installationFile }); // moduleEntry.Extract(modulePhysicalPath); // } // return error; //} //#endregion //#region CheckConflictedAssemblyReferences //public IEnumerable<ConflictedAssemblyReference> CheckConflictedAssemblyReferences(string moduleName) //{ // var assemblyFiles = GetAssemblyFiles(moduleName); // return _assemblyReferences.Check(assemblyFiles); //} //#endregion //#region GetAssemblyFiles //private IEnumerable<string> GetAssemblyFiles(string moduleName) //{ // ModulePath modulePath = new ModulePath(moduleName); // ModuleItemPath moduleBinPath = new ModuleItemPath(moduleName, "Bin"); // if (Directory.Exists(moduleBinPath.PhysicalPath)) // { // return Directory.EnumerateFiles(moduleBinPath.PhysicalPath); // } // else // { // return new string[0]; // } //} //#endregion public UploadModuleResult Upload(string moduleName, Stream moduleStream, string user) { UploadModuleResult result = new UploadModuleResult(); IPath tempInstallationPath = null; using (ModuleStreamEntry moduleEntry = new ModuleStreamEntry(moduleName, moduleStream)) { if (!moduleEntry.IsValid()) { result.IsValid = false; } var moduleInfo = moduleEntry.ModuleInfo; if (moduleInfo == null) { result.IsValid = false; } if (result.IsValid) { moduleName = moduleEntry.ModuleName; var existsModule = ModuleInfo.Get(moduleName); if (existsModule != null) { result.ModuleExists = true; } tempInstallationPath = _installationFileManager.GetTempInstallationPath(moduleName); moduleEntry.Extract(tempInstallationPath.PhysicalPath); result.ModuleName = moduleName; result.TempInstallationPath = tempInstallationPath; result.TargetModuleInfo = moduleInfo; var binFolder = Path.Combine(tempInstallationPath.PhysicalPath, "Bin"); if (Directory.Exists(binFolder)) { var assemblyFiles = Directory.EnumerateFiles(binFolder); result.ConflictedAssemblies = _assemblyReferences.Check(assemblyFiles); } } } return(result); }
public virtual ActionResult ProcessModule(ModulePosition pos) { if (IsGet()) { var manager = ServiceFactory.GetService <ModuleManager>(); var modules = manager.AllModulesForSite(Site.FullName); var model = new List <NameValueCollection>(); foreach (var name in modules) { var item = new NameValueCollection(); item.Add("ModuleName", name); model.Add(item); var setting = ModuleInfo.GetSiteModuleSettings(name, Site.FullName); if (setting.Entry != null) { item.Add("EntryAction", setting.Entry.Action); item.Add("EntryController", setting.Entry.Controller); } var info = ModuleInfo.Get(name); if (info.EntryOptions != null) { var options = new List <object>(); foreach (var op in info.EntryOptions) { options.Add(new { Name = op.Name, EntryAction = op.Entry.Action, EntryController = op.Entry.Controller }); } var serializer = new JavaScriptSerializer(); var optionsJson = serializer.Serialize(options); item.Add("EntryOptions", HttpUtility.HtmlAttributeEncode(optionsJson)); } } return(View(model)); } if (string.IsNullOrWhiteSpace(pos.Entry.Action) || string.IsNullOrWhiteSpace(pos.Entry.Controller)) { pos.Entry = null; } return(Json(new { html = new PageDesignModuleContent(pos).ToHtmlString() })); }
public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( ModuleName + "_default", ModuleName + "/{controller}/{action}", new { action = "Index" } , null , new[] { "Kooboo.CMS.ExtensionTemplate.Areas.BlogModule.Controllers", "Kooboo.Web.Mvc", "Kooboo.Web.Mvc.WebResourceLoader" } ); var areaPath = AreaHelpers.CombineAreaFilePhysicalPath(AreaName); if (Directory.Exists(areaPath)) { var menuFile = AreaHelpers.CombineAreaFilePhysicalPath(AreaName, "CMSMenu.config"); if (File.Exists(menuFile)) { Kooboo.Web.Mvc.Menu.MenuFactory.RegisterAreaMenu(AreaName, menuFile); } var resourceFile = Path.Combine(Settings.BaseDirectory, "Areas", AreaName, "WebResources.config"); if (File.Exists(resourceFile)) { Kooboo.Web.Mvc.WebResourceLoader.ConfigurationManager.RegisterSection(AreaName, resourceFile); } ModuleInfo moduleInfo = ModuleInfo.Get(ModuleAreaRegistration.ModuleName); if (moduleInfo.DefaultSettings.CustomSettings.ContainsKey("ConnectionString")) { BlogDbContext.DefaultConnectionString = moduleInfo.DefaultSettings.CustomSettings["ConnectionString"]; } #region RegisterPermissions var roleManager = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve <RoleManager>(); roleManager.AddPermission(new Permission() { AreaName = "Blog", Group = "", Name = "Blog" }); roleManager.AddPermission(new Permission() { AreaName = "Blog", Group = "", Name = "Category" }); #endregion } }
public virtual ActionResult GoingToUninstall(string uuid) { ModuleInfo moduleInfo = ModuleInfo.Get(uuid); var sites = Manager.AllSitesInModule(uuid); if (sites.Count() > 0) { return(View(sites.Select(it => new SiteModuleRelationModel(it)))); } if (!string.IsNullOrEmpty(moduleInfo.UninstallingTemplate)) { return(RedirectToAction("OnUninstalling", ControllerContext.RequestContext.AllRouteValues())); } else { return(RedirectToAction("DeleteModuleFiles", ControllerContext.RequestContext.AllRouteValues())); } }
public void OnInstalling(ControllerContext controllerContext) { var installationModel = new InstallationModel(); var connectString = controllerContext.HttpContext.Request.Form["ConnectionString"]; if (Kooboo.CMS.Sites.Extension.ModelBindHelper.BindModel(installationModel, controllerContext)) { try { _dbInitializer.InitializeDb(installationModel.ConnectionString); ModuleInfo moduleInfo = ModuleInfo.Get(ModuleAreaRegistration.ModuleName); moduleInfo.DefaultSettings.CustomSettings["ConnectionString"] = installationModel.ConnectionString; ModuleInfo.Save(moduleInfo); } catch (Exception e) { controllerContext.Controller.ViewData.ModelState.AddModelError("ConnectionString", e); } } }
public virtual ModuleInfo Get(string moduleName) { return(ModuleInfo.Get(moduleName)); }
public virtual ActionResult OnInstalling(string moduleName) { ModuleInfo moduleInfo = ModuleInfo.Get(moduleName); return(View(moduleInfo)); }
public virtual ActionResult OnUninstalling(string uuid) { ModuleInfo moduleInfo = ModuleInfo.Get(uuid); return(View(moduleInfo)); }
public virtual ActionResult ProcessModule(ModulePosition pos) { this.ValueProvider.GetValue("q"); if (IsGet()) { var serializer = new JavaScriptSerializer(); var manager = ServiceFactory.GetService <ModuleManager>(); var modules = manager.AllModulesForSite(Site.FullName); var model = new List <NameValueCollection>(); foreach (var name in modules) { var item = new NameValueCollection(); item.Add("ModuleName", name); model.Add(item); var moduleInfo = ModuleInfo.Get(name); var setting = moduleInfo.GetModuleSettings(Site); if (setting.Entry != null) { item.Add("EntryAction", setting.Entry.Action); item.Add("EntryController", setting.Entry.Controller); item.Add("Values", setting.Entry.Values == null ? "[]" : serializer.Serialize(setting.Entry.Values.ToList())); } if (moduleInfo.EntryOptions != null) { var options = new List <object>(); foreach (var op in moduleInfo.EntryOptions) { options.Add(new { Name = op.Name, EntryAction = op.Entry.Action, EntryController = op.Entry.Controller, Values = op.Entry.Values == null ? new List <KeyValuePair <string, object> >() : op.Entry.Values.ToList() }); } var optionsJson = serializer.Serialize(options); item.Add("EntryOptions", optionsJson); } } return(View(model)); } if (pos.Entry != null && pos.Entry.Values != null) { var newValues = new RouteValueDictionary(); foreach (var item in pos.Entry.Values) { if (item.Value is string[]) { newValues[item.Key] = ((string[])item.Value).FirstOrDefault(); } else { newValues[item.Key] = item.Value; } } pos.Entry.Values = newValues; } return(Json(new { html = new PageDesignModuleContent(pos).ToHtmlString() })); }