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;
            }
        }
Example #3
0
        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;
        }