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;
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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;
        }
Exemple #4
0
		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;
			}
			
		}
Exemple #5
0
 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;
     }
 }