public static ActionResult ChangeConfigJs(Session session) { session.Log("Begin CustomAction ChangeConfigJs"); var configPath = session.GetTargetPath("INSTALL_ADMIN_FOLDER") + "scripts\\config.js"; try { StringBuilder sb = new StringBuilder(); sb.AppendLine("app.config = {"); sb.AppendLine(" restEndpoint: '/api',"); sb.AppendLine(" rootUrl: '/admin/',"); sb.AppendLine(" pushState: false"); sb.AppendLine("};"); File.WriteAllText(configPath, sb.ToString()); } catch (Exception e) { session.Log("Error: {0}; {1};", e.Message, e.StackTrace); } return ActionResult.Success; }
/// <summary> /// Returns data from the MSI tables: `FeatureComponents`, `Feature`, `Component`, `File`. /// We filter to just get the files that end in (*.SQL). /// </summary> /// <param name="session">Windows Installer Session.</param> /// <param name="listFeatureNames">List list with names to be installed.</param> /// <returns>Returns scripts database files to be installed.</returns> private static List<FeatureInstallTO> GetFeatureScriptDataBase(Session session, List<string> listFeatureNames) { try { List<FeatureInstallTO> listFeatures; string sLevel = session["INSTALLLEVEL"]; listFeatures = new List<FeatureInstallTO>(); FeatureInstallTO f; int i; string sFileName; string sQuery = "SELECT `Feature`.`Feature`, `Feature`.`Title`, `Feature`.`Display`, " + " `Component`.`Directory_`, `File`.`FileName` " + " FROM `FeatureComponents`, `Feature`, `Component`, `File` " + " WHERE `FeatureComponents`.`Feature_` = `Feature`.`Feature` " + " AND `FeatureComponents`.`Component_` = `Component`.`Component` " + " AND `File`.`Component_` = `Component`.`Component` " + " AND `Feature`.`RuntimeLevel` > 0 AND `Feature`.`Level` > 0 " + // " AND `Feature`.`Level` <= " + sLevel + " ORDER BY `Feature`.`Display`"; using (View v = session.Database.OpenView(sQuery)) { if (v != null) { v.Execute(); for (Record r = v.Fetch(); r != null; r = v.Fetch()) { if (listFeatureNames.Contains(r.GetString("Feature")) && r.GetString("FileName").ToUpper().EndsWith(".SQL")) { i = r.GetString("FileName").IndexOf("|", StringComparison.Ordinal); if (i > 0) { sFileName = r.GetString("FileName").Substring(i + 1); } else { sFileName = r.GetString("FileName"); } f = new FeatureInstallTO { Feature = r.GetString("Feature"), Title = r.GetString("Title"), DisplayOrder = r.GetInteger("Display"), FileName = sFileName, DirectoryPath = session.GetTargetPath(r.GetString("Directory_")) }; listFeatures.Add(f); } r.Dispose(); } } } return listFeatures; } catch (Exception ex) { InstallUtilities.WriteLogInstall(session, "Exception, ReadFeactureScriptDataBase", ex, true); throw; } }
public static ActionResult FileConfigurationSetup(Session session) { session.Log("Begin FileConfigurationSetup Custom Action"); try { //HOSTS FILE Dictionary<string, string> dnsList = new Dictionary<string, string>(); session.Log("Loading user preferences:"); //RETRIEVE AND LOG ALL THE SETUP USER SETTINGS... string companyID = session["XILIXCOMPANYID"]; session.Log("CompanyID = " + companyID); string hostName = session["XILIXHOSTNAME"]; string ipAddress = session["XILIXIPADDRESS"]; if (string.IsNullOrEmpty(ipAddress)) { string serverPrefix = session["XILIXSERVERNAME"]; session.Log("Access Security Key = " + serverPrefix); string serverConnectionType = session["XILIXCONNTYPE"]; session.Log("Connection Type = " + serverConnectionType); hostName = session[serverPrefix]; ipAddress = session[serverPrefix + "." + serverConnectionType]; } session.Log("Server = " + hostName + "(" + ipAddress + ")"); dnsList.Add(ipAddress, hostName); string portNumber = session["XILIXPORTNO"]; session.Log("Access Portal Number = " + portNumber); string defaultProfile = session["XILIXDEFPROFILE"]; string defaultSettingsFile = session["PROFILE." + defaultProfile]; session.Log("Default Trading Profile = " + defaultProfile + " (" + defaultSettingsFile + ")"); string language = session["XILIXDEFLANG"]; session.Log("Default Language = " + language); string plugin = session["XILIXDEFMDPLUGIN"]; session.Log("Source of Market Data = " + plugin); string theme = session["XILIXDEFTHEME"]; string themeName = session["THEME." + theme]; session.Log("Colour Scheme = " + theme + " (" + themeName + ")"); string market = session["XILIXPREMKT"]; session.Log("Prefered Market = " + market); string reutersPlugin = session["REUTERSSOLACE_PLUGIN"]; string installationFolderID = session["WIXUI_INSTALLDIR"]; string installationFolder = session.GetTargetPath(installationFolderID); session.Log("Updating Files..."); //UPDATE GLOBALSETTINGS string globalSettingsFile = System.IO.Path.Combine(installationFolder, @"bin\Config\GlobalSettings.config"); string appServerFile = System.IO.Path.Combine(installationFolder, @"cfg\appserver\xilix-app.properties"); string appSettingsFile = System.IO.Path.Combine(installationFolder, @"bin\MetaBit.Xilix.exe.config"); string reutersFile = System.IO.Path.Combine(installationFolder, @"bin\Config\MarketData\ReutersSolace.xml"); string defaultSettingsSourceFile = System.IO.Path.Combine(installationFolder, defaultSettingsFile); string defaultSettingsPath = System.IO.Path.GetDirectoryName(defaultSettingsSourceFile); if (!defaultSettingsPath.EndsWith(@"\")) defaultSettingsPath += @"\"; string defaultSettingsDestinationFile = defaultSettingsPath + @"DefaultSettings.config"; UpdateGlobalSettings(session, globalSettingsFile, plugin); if (plugin == reutersPlugin) { string reutersHostName = session["REUTERSSOLACE_HOSTNAME"]; string reutersIP = session["REUTERSSOLACE_IP"]; string reutersVPN = session["REUTERSSOLACE_VPNNAME"]; dnsList.Add(reutersIP, reutersHostName); UpdateReutersSolace(session, reutersFile, reutersHostName, reutersIP, reutersVPN); } UpdateAppServer(session, appServerFile, companyID, hostName, portNumber); UpdateDefaultSettings(session, defaultSettingsSourceFile, defaultSettingsDestinationFile, language, market, themeName); UpdateHostsFile(session, dnsList); } catch (Exception ex) { session.Log("CustomAction ERROR: " + ex.Message); } session.Log("End FileConfigurationSetup Custom Action"); return ActionResult.Success; }