public static ActionResult SwhowPathInstall(Session session) { try { // Active message only for debugging developing // MessageBox.Show("SwhowPathInstall: For debugging , the Debug menu, ' Attach to process ' ate processes : msiexec.exe y rundll32.exe.", // "Depurar: SwhowPathInstall", MessageBoxButtons.OK, MessageBoxIcon.Information); bool isCustomActionData = false; List<DataBasePathTO> listPaths; List<FeatureInstallTO> listFeactureScripts; var listFeactureNames = new List<string>(); InstallUtilities.WriteLogInstall(session, "Initialised SwhowPathInstall ...", null, true); if (session == null) { throw new ArgumentNullException("session"); } // Setup Routes taken from CustomTable Id = " TABLE_DATABASE_PATHS " and set default route listPaths = GetCustomTableDataBasePaths(session, isCustomActionData); // Open the user form to change installation paths database . var frmA = new frmPaths(listPaths); if (frmA.ShowDialog() != DialogResult.OK) { throw new InstallerException("Configuración de rutas de instalación no realizada"); } // / Prepare CustomActionData for deferred CustomAction var data = new CustomActionData(); // Update CustomTable Id = " TABLE_DATABASE_PATHS " with modified routes // UpdateCustomTableDataBasePaths (session , listPaths , isCustomActionData ); // Prepare list of paths to be sent to CustomActionData for deferred CustomAction data.AddObject("DATABASE_PATHS", listPaths); // Add the route list as a session property // Data.Add ( " DATABASE_PATHS " JsonConvert.SerializeObject ( listPaths ) ) ; // To retrieve the serialized property // List <DataBasePathTO> JsonConvert.DeserializeObject listPaths = < List <DataBasePathTO> > ( session.CustomActionData [" DATABASE_PATHS "] ); // Prepare properties to be sent to CustomActionData for deferred CustomAction SetCustomActionData(session, "INSTALLLOCATION", data); SetCustomActionData(session, "DATABASE_SERVERNAME", data); SetCustomActionData(session, "DATABASE_NAME", data); SetCustomActionData(session, "DATABASE_WINDOWSAUTHENTICATION", data); SetCustomActionData(session, "DATABASE_AUTHENTICATEDATABASE", data); SetCustomActionData(session, "DATABASE_EXECUTESCRIPTS", data); SetCustomActionData(session, "DATABASE_USERNAME", data); SetCustomActionData(session, "DATABASE_PASSWORD", data); SetCustomActionData(session, "DATABASE_PROXYPASSWORD", data); SetCustomActionData(session, "DATABASE_MAILPROFILENAME", data); SetCustomActionData(session, "DATABASE_MAILBOX", data); SetCustomActionData(session, "DATABASE_MAILIP", data); SetCustomActionData(session, "DATABASE_OPERATORNAMENAME", data); SetCustomActionData(session, "DATABASE_OPERATORMAILBOX", data); SetCustomActionData(session, "DATABASE_PROXYWINDOWSUSER", data); // / Database Scripts to be installed, taken from the MSI Feature using sql files * . foreach (FeatureInfo fi in session.Features) { if (fi.RequestState == InstallState.Local || fi.RequestState == InstallState.Source || fi.RequestState == InstallState.Default) { listFeactureNames.Add(fi.Name); InstallUtilities.WriteLogInstall(session, "FEATURE fi.Name: " + fi.Name + ", fi.CurrentState: " + fi.CurrentState + ", fi.RequestState:" + fi.RequestState, null, false); } } listFeactureScripts = GetFeatureScriptDataBase(session, listFeactureNames); data.AddObject("DATABASE_FEACTURESCRIPTS", listFeactureScripts); // Add all the properties in a single variable //session["CUSTOMACTIONDATA_PROPERTIES"] = data.ToString(); // Schedule deferred actions session.DoAction("CA_DataBaseExecuteScripts", data); return ActionResult.Success; } catch (Exception ex) { InstallUtilities.WriteLogInstall(session, "Exception to establish installation paths for database.", ex, true); return ActionResult.Failure; } }
public static ActionResult UpdateIISPropsWithSelectedWebSite(Session session) { try { if (session["WEBSITE_TYPE"] == "EXISTING") { string selectedWebSiteId = session[WebSiteProperty]; Log.Info(session, "Found web site id: " + selectedWebSiteId); using (var availableWebSitesView = session.Database.OpenView(SpecificSite + selectedWebSiteId)) { availableWebSitesView.Execute(); using (var record = availableWebSitesView.Fetch()) { if ((record[1].ToString()) == selectedWebSiteId) { session["WEBSITE_ID"] = selectedWebSiteId; session["WEBSITE_DESCRIPTION"] = (string)record[2]; session["WEBSITE_PATH"] = (string)record[3]; session["WEBSITE_DEFAULT_APPPOOL"] = (string)record[4]; } } } } else { session["WEBSITE_ID"] = AsteriskSiteId; session["WEBSITE_DEFAULT_APPPOOL"] = "DefaultAppPool"; } session.DoAction("SetIISInstallFolder"); return ActionResult.Success; } catch (Exception ex) { Log.Error(session, "Exception was thrown during UpdateIISPropsWithSelectedWebSite execution" + ex); return ActionResult.Failure; } }
public static ActionResult UpdatePropsWithSelectedWebSite(Session session) { ActionResult result = ActionResult.Failure; try { if (session == null) { throw new ArgumentNullException("session"); } string selectedWebSiteId = session[SessionEntry]; session.Log("CA: Found web site id: " + selectedWebSiteId); using (View availableWebSitesView = session.Database.OpenView( SpecificSite + selectedWebSiteId)) { availableWebSitesView.Execute(); using (Record record = availableWebSitesView.Fetch()) { if ((record[1].ToString()) == selectedWebSiteId) { session["WEBSITE_ID"] = selectedWebSiteId; session["WEBSITE_DESCRIPTION"] = (string)record[2]; session["WEBSITE_PATH"] = (string)record[3]; session.DoAction("SetApplicationRootDirectory"); } } } result = ActionResult.Success; } catch (Exception ex) { if (session != null) { session.Log(CustomActionException + ex.ToString()); } } return result; }
public static ActionResult OpenWebSiteDirectoryChooser(Session session) { try { var task = new Thread(() => { var fileDialog = new FolderBrowserDialog { ShowNewFolderButton = true }; if (fileDialog.ShowDialog() == DialogResult.OK) { session["WEBSITE_PATH"] = fileDialog.SelectedPath; } session.DoAction("SetNewWebSiteDirectory"); }); task.SetApartmentState(ApartmentState.STA); task.Start(); task.Join(); return ActionResult.Success; } catch (Exception ex) { Log.Error(session, "Error occurred during OpenWebSiteDirectoryChooser. Exception: " + ex); return ActionResult.Failure; } }
public static ActionResult Server(Session session) { try { var customActionData = new CustomActionData(); customActionData.Add(INSTALLFOLDER, session[INSTALLFOLDER]); session.DoAction("DeferredServerAction", customActionData); return ActionResult.Success; } catch (Exception ex) { session.Log("Exception Occured during custom action details:" + ex.Message); return ActionResult.Failure; } }