コード例 #1
0
        /// <summary>
        /// Установить значения настроек по умолчанию
        /// </summary>
        private void SetToDefault()
        {
            TcpPort     = DefTcpPort;
            UseAD       = false;
            LdapPath    = "";
            DetailedLog = false;

            BaseDATDir = @"C:\SCADA\BaseDAT\";
            ItfDir     = @"C:\SCADA\Interface\";
            ArcDir     = @"C:\SCADA\ArchiveDAT\";
            ArcCopyDir = @"C:\SCADA\ArchiveDATCopy\";

            WriteCurPer    = 5;
            InactUnrelTime = 5;
            WriteCur       = true;
            WriteCurCopy   = true;
            WriteMinPer    = 60;
            StoreMinPer    = 365;
            WriteMin       = true;
            WriteMinCopy   = true;
            WriteHrPer     = 60;
            StoreHrPer     = 365;
            WriteHr        = true;
            WriteHrCopy    = true;
            StoreEvPer     = 365;
            WriteEv        = true;
            WriteEvCopy    = true;

            ModuleFileNames.Clear();
        }
コード例 #2
0
        /// <summary>
        /// Загрузить настройки приложения из файла
        /// </summary>
        public bool Load(string fileName, out string errMsg)
        {
            // установка значений по умолчанию
            SetToDefault();

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

                XmlDocument xmlDoc = new XmlDocument(); // обрабатываемый XML-документ
                xmlDoc.Load(fileName);
                XmlElement rootElem = xmlDoc.DocumentElement;

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

                        try
                        {
                            if (nameL == "tcpport")
                            {
                                TcpPort = int.Parse(val);
                            }
                            else if (nameL == "usead")
                            {
                                UseAD = bool.Parse(val);
                            }
                            else if (nameL == "ldappath")
                            {
                                LdapPath = val;
                            }
                            else if (nameL == "detailedlog")
                            {
                                DetailedLog = bool.Parse(val);
                            }
                        }
                        catch
                        {
                            throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name));
                        }
                    }
                }

                // загрузка директорий
                paramsNode = rootElem.SelectSingleNode("Directories");
                if (paramsNode != null)
                {
                    XmlNodeList paramNodeList = paramsNode.SelectNodes("Param");
                    foreach (XmlElement paramElem in paramNodeList)
                    {
                        string nameL = paramElem.GetAttribute("name").Trim().ToLowerInvariant();
                        string val   = ScadaUtils.NormalDir(paramElem.GetAttribute("value"));

                        if (nameL == "basedatdir")
                        {
                            BaseDATDir = val;
                        }
                        else if (nameL == "itfdir")
                        {
                            ItfDir = val;
                        }
                        else if (nameL == "arcdir")
                        {
                            ArcDir = val;
                        }
                        else if (nameL == "arccopydir")
                        {
                            ArcCopyDir = val;
                        }
                    }
                }

                // загрузка параметров записи данных
                paramsNode = rootElem.SelectSingleNode("SaveParams");
                if (paramsNode != null)
                {
                    XmlNodeList paramNodeList = paramsNode.SelectNodes("Param");
                    foreach (XmlElement paramElem in paramNodeList)
                    {
                        string name  = paramElem.GetAttribute("name").Trim();
                        string nameL = name.ToLowerInvariant();
                        string val   = paramElem.GetAttribute("value");

                        try
                        {
                            if (nameL == "writecurper")
                            {
                                WriteCurPer = int.Parse(val);
                            }
                            else if (nameL == "inactunreltime")
                            {
                                InactUnrelTime = int.Parse(val);
                            }
                            else if (nameL == "writecur")
                            {
                                WriteCur = bool.Parse(val);
                            }
                            else if (nameL == "writecurcopy")
                            {
                                WriteCurCopy = bool.Parse(val);
                            }
                            else if (nameL == "writeminper")
                            {
                                WriteMinPer = int.Parse(val);
                            }
                            else if (nameL == "storeminper")
                            {
                                StoreMinPer = int.Parse(val);
                            }
                            else if (nameL == "writemin")
                            {
                                WriteMin = bool.Parse(val);
                            }
                            else if (nameL == "writemincopy")
                            {
                                WriteMinCopy = bool.Parse(val);
                            }
                            else if (nameL == "writehrper")
                            {
                                WriteHrPer = int.Parse(val) * 60;
                            }
                            else if (nameL == "storehrper")
                            {
                                StoreHrPer = int.Parse(val);
                            }
                            else if (nameL == "writehr")
                            {
                                WriteHr = bool.Parse(val);
                            }
                            else if (nameL == "writehrcopy")
                            {
                                WriteHrCopy = bool.Parse(val);
                            }
                            else if (nameL == "storeevper")
                            {
                                StoreEvPer = int.Parse(val);
                            }
                            else if (nameL == "writeev")
                            {
                                WriteEv = bool.Parse(val);
                            }
                            else if (nameL == "writeevcopy")
                            {
                                WriteEvCopy = bool.Parse(val);
                            }
                        }
                        catch
                        {
                            throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name));
                        }
                    }
                }

                // загрузка имён файлов модулей
                XmlNode modulesNode = rootElem.SelectSingleNode("Modules");
                if (modulesNode != null)
                {
                    XmlNodeList moduleNodeList = modulesNode.SelectNodes("Module");
                    foreach (XmlElement moduleElem in moduleNodeList)
                    {
                        ModuleFileNames.Add(moduleElem.GetAttribute("fileName"));
                    }
                }

                errMsg = "";
                return(true);
            }
            catch (Exception ex)
            {
                errMsg = CommonPhrases.LoadAppSettingsError + ":" + Environment.NewLine + ex.Message;
                return(false);
            }
        }
コード例 #3
0
        /// <summary>
        /// Load application settings from file
        /// </summary>
        public bool Load(string fileName, out string errMsg)
        {
            // setting default values
            SetToDefault();

            // loading settings
            try {
                if (!File.Exists(fileName))
                {
                    throw new FileNotFoundException(string.Format(CommonPhrases.NamedFileNotFound, fileName));
                }

                var xmlDoc = new XmlDocument(); // processed XML document
                xmlDoc.Load(fileName);
                XmlElement rootElem = xmlDoc.DocumentElement;

                // general parameter loading
                XmlNode paramsNode = rootElem.SelectSingleNode("CommonParams");
                if (paramsNode != null)
                {
                    XmlNodeList paramNodeList = paramsNode.SelectNodes("Param");
                    foreach (XmlElement paramElem in paramNodeList)
                    {
                        string name  = paramElem.GetAttribute("name").Trim();
                        string nameL = name.ToLowerInvariant();
                        string val   = paramElem.GetAttribute("value");

                        try {
                            if (nameL == "tcpport")
                            {
                                TcpPort = int.Parse(val);
                            }
                            else if (nameL == "usead")
                            {
                                UseAD = bool.Parse(val);
                            }
                            else if (nameL == "ldappath")
                            {
                                LdapPath = val;
                            }
                            else if (nameL == "detailedlog")
                            {
                                DetailedLog = bool.Parse(val);
                            }
                        } catch {
                            throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name));
                        }
                    }
                }

                // loading directories
                paramsNode = rootElem.SelectSingleNode("Directories");
                if (paramsNode != null)
                {
                    XmlNodeList paramNodeList = paramsNode.SelectNodes("Param");
                    foreach (XmlElement paramElem in paramNodeList)
                    {
                        string nameL = paramElem.GetAttribute("name").Trim().ToLowerInvariant();
                        string val   = ScadaUtils.NormalDir(paramElem.GetAttribute("value"));

                        if (nameL == "basedatdir")
                        {
                            BaseDATDir = val;
                        }
                        else if (nameL == "itfdir")
                        {
                            ItfDir = val;
                        }
                        else if (nameL == "arcdir")
                        {
                            ArcDir = val;
                        }
                        else if (nameL == "arccopydir")
                        {
                            ArcCopyDir = val;
                        }
                    }
                }

                // loading data logging parameters
                paramsNode = rootElem.SelectSingleNode("SaveParams");
                if (paramsNode != null)
                {
                    XmlNodeList paramNodeList = paramsNode.SelectNodes("Param");
                    foreach (XmlElement paramElem in paramNodeList)
                    {
                        string name  = paramElem.GetAttribute("name").Trim();
                        string nameL = name.ToLowerInvariant();
                        string val   = paramElem.GetAttribute("value");

                        try {
                            if (nameL == "writecurper")
                            {
                                WriteCurPer = int.Parse(val);
                            }
                            else if (nameL == "inactunreltime")
                            {
                                InactUnrelTime = int.Parse(val);
                            }
                            else if (nameL == "writecur")
                            {
                                WriteCur = bool.Parse(val);
                            }
                            else if (nameL == "writecurcopy")
                            {
                                WriteCurCopy = bool.Parse(val);
                            }
                            else if (nameL == "writeminper")
                            {
                                WriteMinPer = int.Parse(val);
                            }
                            else if (nameL == "storeminper")
                            {
                                StoreMinPer = int.Parse(val);
                            }
                            else if (nameL == "writemin")
                            {
                                WriteMin = bool.Parse(val);
                            }
                            else if (nameL == "writemincopy")
                            {
                                WriteMinCopy = bool.Parse(val);
                            }
                            else if (nameL == "writehrper")
                            {
                                WriteHrPer = int.Parse(val) * 60;
                            }
                            else if (nameL == "storehrper")
                            {
                                StoreHrPer = int.Parse(val);
                            }
                            else if (nameL == "writehr")
                            {
                                WriteHr = bool.Parse(val);
                            }
                            else if (nameL == "writehrcopy")
                            {
                                WriteHrCopy = bool.Parse(val);
                            }
                            else if (nameL == "storeevper")
                            {
                                StoreEvPer = int.Parse(val);
                            }
                            else if (nameL == "writeev")
                            {
                                WriteEv = bool.Parse(val);
                            }
                            else if (nameL == "writeevcopy")
                            {
                                WriteEvCopy = bool.Parse(val);
                            }
                        } catch {
                            throw new Exception(string.Format(CommonPhrases.IncorrectXmlParamVal, name));
                        }
                    }
                }

                // loading module file names
                XmlNode modulesNode = rootElem.SelectSingleNode("Modules");
                if (modulesNode != null)
                {
                    XmlNodeList moduleNodeList = modulesNode.SelectNodes("Module");
                    foreach (XmlElement moduleElem in moduleNodeList)
                    {
                        ModuleFileNames.Add(moduleElem.GetAttribute("fileName"));
                    }
                }

                errMsg = "";
                return(true);
            } catch (Exception ex) {
                errMsg = CommonPhrases.LoadAppSettingsError + ":" + Environment.NewLine + ex.Message;
                return(false);
            }
        }