private string ImportControl(string controlSrc) { string ExtensionMessage = string.Empty; if (!string.IsNullOrEmpty(controlSrc)) { DropDownList ddlFirst = ((DropDownList)PackageDetails1.FindControl("ddlFirst")); DropDownList ddlSecond = ((DropDownList)PackageDetails1.FindControl("ddlSecond")); DropDownList ddlLast = ((DropDownList)PackageDetails1.FindControl("ddlLast")); DropDownList ddlIcon = ((DropDownList)ModuleControlsDetails1.FindControl("ddlIcon")); TextBox txtKey = ((TextBox)ModuleControlsDetails1.FindControl("txtKey")); TextBox txtTitle = ((TextBox)ModuleControlsDetails1.FindControl("txtTitle")); TextBox txtHelpURL = ((TextBox)ModuleControlsDetails1.FindControl("txtHelpURL")); TextBox txtDisplayOrder = ((TextBox)ModuleControlsDetails1.FindControl("txtDisplayOrder")); //CheckBox chkSupportsPartialRendering = ((CheckBox)ModuleControlsDetails1.FindControl("chkSupportsPartialRendering")); DropDownList ddlType = ((DropDownList)ModuleControlsDetails1.FindControl("ddlType")); ModuleInfo objModule = new ModuleInfo(); Installers install = new Installers(); try { string folder = RemoveTrailingSlash(GetSourceFolder()); string friendlyName = PackageDetails1.PackageName; string name = GetClassName(); string moduleControl = "Modules/" + folder + "/" + controlSrc; //add module and package tables objModule.ModuleName = name; objModule.Name = name; objModule.FriendlyName = friendlyName; objModule.Description = PackageDetails1.Description; objModule.FolderName = folder; objModule.Version = ddlFirst.SelectedValue + "." + ddlSecond.SelectedValue + "." + ddlLast.SelectedValue;//"01.00.00"; //new Version(1, 0, 0); objModule.Owner = PackageDetails1.Owner; objModule.Organization = PackageDetails1.Organization; objModule.URL = PackageDetails1.Url; objModule.Email = PackageDetails1.Email; objModule.ReleaseNotes = PackageDetails1.ReleaseNotes; objModule.License = PackageDetails1.License; objModule.PackageType = "Module"; objModule.isPremium = true; objModule.supportedFeatures = 0; objModule.BusinessControllerClass = ""; objModule.CompatibleVersions = ""; objModule.dependencies = ""; objModule.permissions = ""; ModuleController objController = new ModuleController(); try { int[] outputValue; outputValue = objController.AddModules(objModule, false, 0, true, DateTime.Now, GetPortalID, GetUsername); objModule.ModuleID = outputValue[0]; objModule.ModuleDefID = outputValue[1]; _newModuleID = objModule.ModuleID; _newModuleDefID = objModule.ModuleDefID; } catch (Exception ex) { ProcessException(ex); } try { //insert into ProtalModule table _newPortalmoduleID = objController.AddPortalModules(GetPortalID, _newModuleID, true, DateTime.Now, GetUsername); } catch (Exception ex) { ProcessException(ex); } //install permission for the installed module in ModuleDefPermission table with ModuleDefID and PermissionID try { // get the default module VIEW permissions int _permissionIDView = objController.GetPermissionByCodeAndKey("SYSTEM_VIEW", "VIEW"); objController.AddModulePermission(_newModuleDefID, _permissionIDView, GetPortalID, _newPortalmoduleID, true, GetUsername, true, DateTime.Now, GetUsername); int _permissionIDEdit = objController.GetPermissionByCodeAndKey("SYSTEM_EDIT", "EDIT"); objController.AddModulePermission(_newModuleDefID, _permissionIDEdit, GetPortalID, _newPortalmoduleID, true, GetUsername, true, DateTime.Now, GetUsername); } catch (Exception ex) { Exceptions += ex.Message; } try { //Logic for modulecontrol installation string _moduleControlKey = txtKey.Text; string _moduleControlTitle = txtTitle.Text; string _moduleControlSrc = moduleControl; string _moduleControlHelpUrl = txtHelpURL.Text; //bool _moduleSupportsPartialRendering = chkSupportsPartialRendering.Checked; bool _moduleSupportsPartialRendering = false; int _controlType = int.Parse(ddlType.SelectedItem.Value); string _iconFile = ""; if (ddlIcon.SelectedIndex != -1) { _iconFile = ddlIcon.SelectedItem.Value; } int _displayOrder = int.Parse(txtDisplayOrder.Text); _moduleControlID = objController.AddModuleCoontrols(_newModuleDefID, _moduleControlKey, _moduleControlTitle, _moduleControlSrc, _iconFile, _controlType, _displayOrder, _moduleControlHelpUrl, _moduleSupportsPartialRendering, true, DateTime.Now, GetPortalID, GetUsername); ExtensionMessage = GetSageMessage("Extensions", "ModuleExtensionIsAddedSuccessfully"); } catch (Exception ex) { Exceptions = ex.Message; } if (Exceptions != string.Empty) { if (objModule.ModuleID > 0 && _newModuleDefID != null && _newModuleDefID > 0) { //Delete Module info from data base install.ModulesRollBack(objModule.ModuleID, GetPortalID); } } } catch { if (objModule.ModuleID > 0 && _newModuleDefID != null && _newModuleDefID > 0) { //Delete Module info from data base install.ModulesRollBack(objModule.ModuleID, GetPortalID); } } } return ExtensionMessage; }
public void InstallPackageCore(ModuleInfo module, XmlDocument doc, ref ArrayList dllFiles, ref string _unistallScriptFile) { #region "Module Creation Logic" // add into module table int[] outputValue; ModuleController objProvider = new ModuleController(); outputValue = objProvider.AddModules(module, false, 0, true, DateTime.Now, GetPortalID, GetUsername); module.ModuleID = outputValue[0]; module.ModuleDefID = outputValue[1]; _newModuleID = module.ModuleID; _newModuleDefID = module.ModuleDefID; //insert into ProtalModule table _newPortalmoduleID = objProvider.AddPortalModules(GetPortalID, _newModuleID, true, DateTime.Now, GetUsername); //install permission for the installed module in ModuleDefPermission table with ModuleDefID and PermissionID try { // get the default module VIEW permissions int _permissionIDView = objProvider.GetPermissionByCodeAndKey("SYSTEM_VIEW", "VIEW"); //insert into module permissions i.e., ModuleDefPermission and PortalModulePermission objProvider.AddModulePermission(_newModuleDefID, _permissionIDView, GetPortalID, _newPortalmoduleID, true, GetUsername, true, DateTime.Now, GetUsername); // get the default module EDIT permissions int _permissionIDEdit = objProvider.GetPermissionByCodeAndKey("SYSTEM_EDIT", "EDIT"); //insert into module permissions i.e., ModuleDefPermission and PortalModulePermission objProvider.AddModulePermission(_newModuleDefID, _permissionIDEdit, GetPortalID, _newPortalmoduleID, true, GetUsername, true, DateTime.Now, GetUsername); } catch (Exception ex) { Exceptions += ex.Message; return; } XmlNodeList xnList2 = doc.SelectNodes("sageframe/folders/folder/modules/module/controls/control"); foreach (XmlNode xn2 in xnList2) { string _moduleControlKey = null; if (xn2["key"] != null) { _moduleControlKey = xn2["key"].InnerXml;// exists } string _moduleControlTitle = xn2["title"].InnerXml; string _moduleControlSrc = xn2["src"].InnerXml; string _controlType = xn2["type"].InnerXml; string _moduleControlHelpUrl = xn2["helpurl"].InnerXml; bool _moduleSupportsPartialRendering = false; if (xn2["supportspartialrendering"] != null) { string _moduleControlSupportsPartialRendering = xn2["supportspartialrendering"].InnerXml; if (_moduleControlSupportsPartialRendering == "true") { _moduleSupportsPartialRendering = true; } } int controlType = 0; controlType = checkControlType(_controlType); string IconFile = ""; //add into module control table objProvider.AddModuleCoontrols(_newModuleDefID, _moduleControlKey, _moduleControlTitle, _moduleControlSrc, IconFile, controlType, 0, _moduleControlHelpUrl, _moduleSupportsPartialRendering, true, DateTime.Now, GetPortalID, GetUsername); } XmlNodeList xnList3 = doc.SelectNodes("sageframe/folders/folder/files/file"); if (xnList3.Count != 0) { #region CheckValidDataSqlProvider string moduleFile = GetSqlDataProviderFile(module.TempFolderPath); if (moduleFile.Trim().Length < 2) moduleFile = module.Version; #endregion bool orderSpecified = (from XmlNode xn3 in xnList3 select xn3.Attributes["order"]).Select(order => order != null).FirstOrDefault(); if (orderSpecified) { var sortedItems = xnList3.OfType<XmlElement>() .OrderBy(item => int.Parse(item.GetAttribute("order"))); foreach (var item in sortedItems) { string _fileName = item["name"].InnerXml; try { #region ReadSqlProviderfile if (!String.IsNullOrEmpty(moduleFile) && !_fileName.Contains("Uninstall.SqlDataProvider") && _fileName.Contains(".SqlDataProvider")) { Exceptions = ReadSQLFile(module.TempFolderPath, _fileName); } #endregion #region CheckAlldllFiles if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains(".dll")) { dllFiles.Add(_fileName); } #endregion #region ReadUninstall SQL FileName if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains("Uninstall.SqlDataProvider")) { _unistallScriptFile = _fileName; } #endregion } catch (Exception ex) { Exceptions += ex.Message; break; } } } else { foreach (XmlNode xn3 in xnList3) { string _fileName = xn3["name"].InnerXml; try { #region ReadSqlProviderfile if (!String.IsNullOrEmpty(moduleFile) && !_fileName.Contains("Uninstall.SqlDataProvider") && _fileName.Contains(".SqlDataProvider")) { Exceptions = ReadSQLFile(module.TempFolderPath, moduleFile + ".SqlDataProvider"); } #endregion #region CheckAlldllFiles if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains(".dll")) { dllFiles.Add(_fileName); } #endregion #region ReadUninstall SQL FileName if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains("Uninstall.SqlDataProvider")) { _unistallScriptFile = _fileName; } #endregion } catch (Exception ex) { Exceptions += ex.Message; break; } } } } XmlNodeList xnList4 = doc.SelectNodes("sageframe/folders/folder/templates/template"); if (xnList4 != null && xnList4.Count != 0) { foreach (XmlNode xn4 in xnList4) { string _templateName = xn4["name"].InnerXml; #region Read Template file if (!String.IsNullOrEmpty(_templateName)) { string templateName = _templateName; AddTemplateZip(templateName, module.TempFolderPath); } #endregion } } XmlNodeList directrylist = doc.SelectNodes("sageframe/folders/folder/move/directories/directory"); if (directrylist != null && directrylist.Count != 0) { foreach (XmlNode directory in directrylist) { if (directory["from"] != null && directory["to"]!=null) { string fromdirectory = module.TempFolderPath + "\\" + directory["from"].InnerXml; string todirectory = HttpContext.Current.Server.MapPath(@"~/" + directory["to"].InnerXml); MoveDirectory(fromdirectory, todirectory); } } } XmlNodeList fileList = doc.SelectNodes("sageframe/folders/folder/move/files/file"); if (fileList != null && fileList.Count != 0) { foreach (XmlNode file in fileList) { if (file["to"] != null && file["name"]!=null) { string fileName = file["name"] != null ? file["name"].InnerXml : ""; string fromLocation = module.TempFolderPath + "\\" + file["from"].InnerXml; string toLocation = HttpContext.Current.Server.MapPath(@"~/" + file["to"].InnerXml); MoveFile(fileName, fromLocation, toLocation); } } } if (Exceptions != string.Empty) { if (module.ModuleID.ToString() != null && module.ModuleID > 0 && _newModuleDefID != null && _newModuleDefID > 0) { //Run unstallScript if (_unistallScriptFile != "") { Exceptions = ReadSQLFile(module.TempFolderPath, _unistallScriptFile); } //Delete Module info from data base ModulesRollBack(module.ModuleID, GetPortalID); module.ModuleID = -1; } } #endregion }
public void RegisterModule(string moduleName, string moduleFolderPath, string procedure) { ModuleInfo objModule = new ModuleInfo(); int _newModuleID = 0; int _newModuleDefID = 0; int _newPortalmoduleID = 0; string Exceptions = string.Empty; string ExtensionMessage = string.Empty; try { //add module and package tables objModule.ModuleName = moduleName; objModule.Name = moduleName; objModule.FriendlyName = moduleName; objModule.Description = txtModuleDescription.Text; objModule.FolderName = moduleName; objModule.Version = "01.00.00";//ddlFirst.SelectedValue + "." + ddlSecond.SelectedValue + "." + ddlLast.SelectedValue;//"01.00.00"; //new Version(1, 0, 0); objModule.Owner = ""; objModule.Organization = ""; objModule.URL = ""; objModule.Email = ""; objModule.ReleaseNotes = ""; objModule.License = ""; objModule.PackageType = "Module"; objModule.isPremium = true; objModule.supportedFeatures = 0; objModule.BusinessControllerClass = ""; objModule.CompatibleVersions = ""; objModule.dependencies = ""; objModule.permissions = ""; ModuleController objController = new ModuleController(); int[] outputValue; outputValue = objController.AddModules(objModule, false, 0, true, DateTime.Now, GetPortalID, GetUsername); objModule.ModuleID = outputValue[0]; objModule.ModuleDefID = outputValue[1]; _newModuleID = objModule.ModuleID; _newModuleDefID = objModule.ModuleDefID; //insert into ProtalModule table _newPortalmoduleID = objController.AddPortalModules(GetPortalID, _newModuleID, true, DateTime.Now, GetUsername); //install permission for the installed module in ModuleDefPermission table with ModuleDefID and PermissionID // get the default module VIEW permissions int _permissionIDView = objController.GetPermissionByCodeAndKey("SYSTEM_VIEW", "VIEW"); objController.AddModulePermission(_newModuleDefID, _permissionIDView, GetPortalID, _newPortalmoduleID, true, GetUsername, true, DateTime.Now, GetUsername); int _permissionIDEdit = objController.GetPermissionByCodeAndKey("SYSTEM_EDIT", "EDIT"); objController.AddModulePermission(_newModuleDefID, _permissionIDEdit, GetPortalID, _newPortalmoduleID, true, GetUsername, true, DateTime.Now, GetUsername); RegisterControl(moduleName, moduleFolderPath + moduleName + "/" + moduleName + ".ascx", 1, _newModuleDefID); if (chkEdit.Checked) { RegisterControl(moduleName, moduleFolderPath + moduleName + "/" + moduleName + "Edit" + ".ascx", 2, _newModuleDefID); } if (chkSetting.Checked) { RegisterControl(moduleName, moduleFolderPath + moduleName + "/" + moduleName + "Setting" + ".ascx", 3, _newModuleDefID); } if (Exceptions != string.Empty) { if (objModule.ModuleID > 0 && _newModuleDefID > 0) { Installers install = new Installers(); //Delete Module info from data base install.ModulesRollBack(objModule.ModuleID, GetPortalID); } } else { SQLHandler sageSQLHandler = new SQLHandler(); sageSQLHandler.ExecuteScript(procedure, true); } } catch (Exception ex) { ShowMessage("", ex.ToString(), "", SageMessageType.Error); ProcessException(ex); } Response.Redirect(Request.Url.AbsoluteUri); }