public void InstallPackage(ModuleInfo module) { XmlDocument doc = new XmlDocument(); ArrayList dllFiles = new ArrayList(); string _unistallScriptFile = string.Empty; doc.Load(module.TempFolderPath + '\\' + module.ManifestFile); XmlElement root = doc.DocumentElement; if (!String.IsNullOrEmpty(root.ToString())) { XmlNodeList xnList = doc.SelectNodes("sageframe/folders/folder"); foreach (XmlNode xn in xnList) { #region Module Exist check try { #region "Module Creation Logic" // add into module table var LINQModuleInfo = db.sp_ModulesAdd(ref _newModuleID, ref _newModuleDefID, module.Name, module.PackageType, module.License, module.Owner, module.Organization, module.URL, module.Email, module.ReleaseNotes, module.FriendlyName, module.Description, module.Version, true, false, module.BusinessControllerClass, module.FolderName, module.ModuleName, 0, module.CompatibleVersions, "", "", 0, true, DateTime.Now, GetPortalID, GetUsername); module.ModuleID = (Int32)_newModuleID; //insert into ProtalModule table db.sp_PortalModulesAdd(ref _newPortalmoduleID, 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 var LINQModuleViewPermission = dbPermission.sp_GetPermissionByCodeAndKey("SYSTEM_VIEW", "VIEW").SingleOrDefault(); int _permissionIDView = LINQModuleViewPermission.PermissionID; //insert into module permissions i.e., ModuleDefPermission and PortalModulePermission dbPermission.sp_ModulesPermissionAdd(ref _newModuleDefPermissionID, _newModuleDefID, _permissionIDView, GetPortalID, ref _newPortalModulePermissionID, _newPortalmoduleID, true, null, true, DateTime.Now, GetUsername); // get the default module EDIT permissions var LINQModuleEditPermission = dbPermission.sp_GetPermissionByCodeAndKey("SYSTEM_EDIT", "EDIT").SingleOrDefault(); int _permissionIDEdit = LINQModuleEditPermission.PermissionID; //insert into module permissions i.e., ModuleDefPermission and PortalModulePermission dbPermission.sp_ModulesPermissionAdd(ref _newModuleDefPermissionID, _newModuleDefID, _permissionIDEdit, GetPortalID, ref _newPortalModulePermissionID, _newPortalmoduleID, true, null, true, DateTime.Now, GetUsername); } catch (Exception ex) { Exceptions += ex.Message; break; } 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); //add into module control table ModuleControlsDataContext dbMC = new ModuleControlsDataContext(SystemSetting.SageFrameConnectionString); dbMC.sp_ModuleControlsAdd(ref _moduleControlID, _newModuleDefID, _moduleControlKey, _moduleControlTitle, _moduleControlSrc, null, controlType, 0, _moduleControlHelpUrl, _moduleSupportsPartialRendering, true, DateTime.Now, GetPortalID, GetUsername); } XmlNodeList xnList3 = doc.SelectNodes("sageframe/folders/folder/files/file"); if (xnList3.Count != 0) { foreach (XmlNode xn3 in xnList3) { string _fileName = xn3["name"].InnerXml; try { #region CheckValidDataSqlProvider if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains(module.Version + ".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; } } } 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 } catch { 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 } } if (module.ModuleID.ToString() != null && module.ModuleID > 0 && Exceptions == string.Empty) { string path = HttpContext.Current.Server.MapPath("~/"); string targetPath = path + SageFrame.Core.RegisterModule.Common.ModuleFolder + '\\' + module.FolderName; CopyDirectory(module.TempFolderPath, targetPath); for (int i = 0; i < dllFiles.Count; i++) { string sourcedllFile = module.TempFolderPath + '\\' + dllFiles[i].ToString(); string targetdllPath = path + SageFrame.Core.RegisterModule.Common.DLLTargetPath + '\\' + dllFiles[i].ToString(); File.Copy(sourcedllFile, targetdllPath, true); //File.Move(); } } DeleteTempDirectory(module.TempFolderPath); }
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"; bool isPremium = true; int supportedFeatures = 0; objModule.BusinessControllerClass = ""; objModule.CompatibleVersions = ""; string dependencies = ""; string permissions = ""; try { //Insert into Module and Package tables var LINQModuleInfo = db.sp_ModulesAdd(ref _newModuleID, ref _newModuleDefID, objModule.Name, objModule.PackageType, objModule.License, objModule.Owner, objModule.Organization, objModule.URL, objModule.Email, objModule.ReleaseNotes, objModule.FriendlyName, objModule.Description, objModule.Version, isPremium, false, objModule.BusinessControllerClass, objModule.FolderName, objModule.ModuleName, supportedFeatures, objModule.CompatibleVersions, dependencies, permissions, 0, true, DateTime.Now, GetPortalID, GetUsername); objModule.ModuleID = (Int32)_newModuleID; } catch (Exception ex) { ProcessException(ex); } try { //insert into ProtalModule table db.sp_PortalModulesAdd(ref _newPortalmoduleID, 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 var LINQModuleViewPermission = dbPermission.sp_GetPermissionByCodeAndKey("SYSTEM_VIEW", "VIEW").SingleOrDefault(); int _permissionIDView = LINQModuleViewPermission.PermissionID; //insert into module permissions i.e., ModuleDefPermission and PortalModulePermission dbPermission.sp_ModulesPermissionAdd(ref _newModuleDefPermissionID, _newModuleDefID, _permissionIDView, GetPortalID, ref _newPortalModulePermissionID, _newPortalmoduleID, true, null, true, DateTime.Now, GetUsername); // get the default module EDIT permissions var LINQModuleEditPermission = dbPermission.sp_GetPermissionByCodeAndKey("SYSTEM_EDIT", "EDIT").SingleOrDefault(); int _permissionIDEdit = LINQModuleEditPermission.PermissionID; //insert into module permissions i.e., ModuleDefPermission and PortalModulePermission dbPermission.sp_ModulesPermissionAdd(ref _newModuleDefPermissionID, _newModuleDefID, _permissionIDEdit, GetPortalID, ref _newPortalModulePermissionID, _newPortalmoduleID, true, null, 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; int _controlType = int.Parse(ddlType.SelectedItem.Value); string _iconFile = ""; if (ddlIcon.SelectedIndex != -1) { _iconFile = ddlIcon.SelectedItem.Value; } int _displayOrder = int.Parse(txtDisplayOrder.Text); //add into module control table dbMC.sp_ModuleControlsAdd(ref _moduleControlID, _newModuleDefID, _moduleControlKey, _moduleControlTitle, _moduleControlSrc, _iconFile, _controlType, _displayOrder, _moduleControlHelpUrl, _moduleSupportsPartialRendering, true, DateTime.Now, GetPortalID, GetUsername); ExtensionMessage = GetSageMessage("Extensions_Editors", "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); }