Esempio n. 1
0
 /// <summary>
 /// Удалить имя файла библиотеки плагина из списка
 /// </summary>
 public void RemovePluginFileName(string fileName)
 {
     if (!string.IsNullOrEmpty(fileName))
     {
         int ind = PluginFileNames.BinarySearch(fileName);
         if (ind >= 0)
         {
             PluginFileNames.RemoveAt(ind);
         }
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Добавить имя файла библиотеки плагина в список
 /// </summary>
 public void AddPluginFileName(string fileName)
 {
     if (!string.IsNullOrEmpty(fileName))
     {
         int ind = PluginFileNames.BinarySearch(fileName);
         if (ind < 0)
         {
             PluginFileNames.Insert(~ind, fileName);
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Установить значения настроек по умолчанию
        /// </summary>
        protected void SetToDefault()
        {
            Culture       = "";
            DataRefrRate  = 1000;
            ArcRefrRate   = 10000;
            DispEventCnt  = 100;
            ChartGap      = 90;
            StartPage     = "";
            CmdEnabled    = true;
            CmdPassword   = true;
            RemEnabled    = false;
            ViewsFromBase = true;
            ShareStats    = true;

            CommSettings.SetToDefault();
            ScriptPaths.SetToDefault();
            PluginFileNames.Clear();
            CustomOptions.Clear();
        }
Esempio n. 4
0
        /// <summary>
        /// Загрузить настройки из файла
        /// </summary>
        public bool LoadFromFile(string fileName, out string errMsg)
        {
            // установка значений по умолчанию
            SetToDefault();

            // загрузка настроек
            try
            {
                if (!File.Exists(fileName))
                {
                    throw new FileNotFoundException(string.Format(CommonPhrases.NamedFileNotFound, fileName));
                }

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(fileName);
                XmlElement rootElem = xmlDoc.DocumentElement;

                // загрузка настроек соединения с сервером
                if (rootElem.SelectSingleNode("CommSettings") is XmlNode commSettingsNode)
                {
                    CommSettings.LoadFromXml(commSettingsNode);
                }

                // загрузка общих параметров
                if (rootElem.SelectSingleNode("CommonParams") is XmlNode commonParamsNode)
                {
                    foreach (XmlElement paramElem in commonParamsNode.SelectNodes("Param"))
                    {
                        string name  = paramElem.GetAttribute("name").Trim();
                        string nameL = name.ToLowerInvariant();
                        string val   = paramElem.GetAttribute("value");

                        try
                        {
                            if (nameL == "culture")
                            {
                                Culture = val;
                            }
                            else if (nameL == "datarefrrate")
                            {
                                DataRefrRate = Math.Max(MinDataRefrRate, int.Parse(val));
                            }
                            else if (nameL == "arcrefrrate")
                            {
                                ArcRefrRate = Math.Max(MinDataRefrRate, int.Parse(val));
                            }
                            else if (nameL == "dispeventcnt")
                            {
                                DispEventCnt = int.Parse(val);
                            }
                            else if (nameL == "chartgap")
                            {
                                ChartGap = int.Parse(val);
                            }
                            else if (nameL == "cmdenabled")
                            {
                                CmdEnabled = bool.Parse(val);
                            }
                            else if (nameL == "cmdpassword")
                            {
                                CmdPassword = bool.Parse(val);
                            }
                            else if (nameL == "remenabled")
                            {
                                RemEnabled = bool.Parse(val);
                            }
                            else if (nameL == "startpage")
                            {
                                StartPage = val;
                            }
                            else if (nameL == "viewsfrombase")
                            {
                                ViewsFromBase = bool.Parse(val);
                            }
                            else if (nameL == "sharestats")
                            {
                                ShareStats = bool.Parse(val);
                            }
                        }
                        catch
                        {
                            throw new ScadaException(string.Format(CommonPhrases.IncorrectXmlParamVal, name));
                        }
                    }
                }

                // загрузка путей к скриптам
                if (rootElem.SelectSingleNode("ScriptPaths") is XmlNode scriptPathsNode)
                {
                    foreach (XmlElement scriptElem in scriptPathsNode.SelectNodes("Script"))
                    {
                        string name  = scriptElem.GetAttribute("name").Trim();
                        string nameL = name.ToLowerInvariant();
                        string path  = scriptElem.GetAttribute("path");

                        if (nameL == "chartscript")
                        {
                            ScriptPaths.ChartScriptPath = path;
                        }
                        else if (nameL == "cmdscript")
                        {
                            ScriptPaths.CmdScriptPath = path;
                        }
                        else if (nameL == "eventackscript")
                        {
                            ScriptPaths.EventAckScriptPath = path;
                        }
                    }
                }

                // загрузка имён файлов модулей
                if (rootElem.SelectSingleNode("Plugins") is XmlNode pluginsNode)
                {
                    foreach (XmlElement moduleElem in pluginsNode.SelectNodes("Plugin"))
                    {
                        PluginFileNames.Add(moduleElem.GetAttribute("fileName"));
                    }
                }

                PluginFileNames.Sort();

                // custom options
                if (rootElem.SelectSingleNode("CustomOptions") is XmlNode customOptionsNode)
                {
                    foreach (XmlElement optionGroupElem in customOptionsNode.SelectNodes("OptionGroup"))
                    {
                        OptionList optionList = new OptionList();
                        optionList.LoadFromXml(optionGroupElem);
                        CustomOptions[optionGroupElem.GetAttrAsString("name")] = optionList;
                    }
                }

                errMsg = "";
                return(true);
            }
            catch (Exception ex)
            {
                errMsg = WebPhrases.LoadWebSettingsError + ": " + ex.Message;
                return(false);
            }
        }