/// <summary>
        /// Загрузить конфиг-файл.
        /// </summary>
        internal static void LoadXmlConfig()
        {
            string fileName = DefaultProgramFullFileName;

            bool create = false;

            if (File.Exists(fileName))
            {
                try
                {
                    localParams.Load(fileName);
                }
                catch (Exception)
                {
                    create = true;
                }
            }

            if (create)
            {
                localParams = new ConfigXmlDocument();

                XmlDeclaration declaration = localParams.CreateXmlDeclaration("1.0", "utf-8", "yes");
                localParams.AppendChild(declaration);

                XmlNode root = localParams.CreateElement(ProgramConfiguraton.trainerRootNodeName);
                localParams.AppendChild(root);
            }
        }
        /// <summary>
        /// Update RunTimeData appSettings sections
        /// Add a new key
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public static void AddKeyAppSettings(string key, string value)
        {
            //Update custom configuration sections - Add a new key
            ConfigXmlDocument xmlDoc = new ConfigXmlDocument();

            //var projectDir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.FullName;
            //var fileDir = projectDir + @"\AcceptanceTests\DataFiles\";
            //var xmlDir = fileDir + "RunTimeData.xml";

            //Replace with get xmlDir Method()
            xmlDoc.Load(xmlDir);

            // create new node <add key="New Key" value="New Key Value1" />
            var node = xmlDoc.CreateElement("add");

            //node.SetAttribute("key", "New Key");
            //node.SetAttribute("value", "New Key Value1");

            node.SetAttribute("key", key);
            node.SetAttribute("value", value);

            xmlDoc.SelectSingleNode("//appSettings").AppendChild(node);


            //xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
            xmlDoc.Save(xmlDir);

            ConfigurationManager.RefreshSection("//appSettings");
        }
Beispiel #3
0
 /// <summary>
 /// プロパティを保存する処理
 /// </summary>
 private void SaveProperties()
 {
     try
     {
         FileInfo fi = new System.IO.FileInfo(GetLocalConfigFilePath());
         if (fi.Exists != true)
         {
             if (fi.Directory.Exists != true)
             {
                 fi.Directory.Create();
             }
         }
         ConfigXmlDocument cdoc = new ConfigXmlDocument();
         var cfg  = cdoc.CreateElement("configuration");
         var apps = cdoc.CreateElement("settings");
         Func <string, string, bool> addItem = (key, val) =>
         {
             var node  = cdoc.CreateElement("add");
             var attrK = cdoc.CreateAttribute("key");
             attrK.InnerText = key;
             var attrV = cdoc.CreateAttribute("value");
             attrV.InnerText = string.IsNullOrWhiteSpace(val) ? string.Empty : val;
             node.Attributes.Append(attrK);
             node.Attributes.Append(attrV);
             apps.AppendChild(node);
             return(true);
         };
         addItem("LoginCheck", this.ライセンス情報記憶.ToString());
         addItem("TextUr", Utility.Encrypt(this.ユーザーID));
         addItem("TextLr", Utility.Encrypt(this.パスワード));
         cdoc.AppendChild(cfg);
         cfg.AppendChild(apps);
         cdoc.Save(fi.FullName);
     }
     catch (Exception)
     {
     }
     finally
     {
     }
 }
Beispiel #4
0
        /// <summary>
        /// 创建默认的配置文件
        /// </summary>
        private static void CreateDefaultConfigFile()
        {
            // 创建文件,写入默认值
            XmlDocument xmlDoc = new ConfigXmlDocument();

            // 根节点添加默认参数集
            XmlElement elemParams = xmlDoc.CreateElement(RootNodeName);

            elemParams.AppendChild(xmlDoc.CreateSingleElement(@"PhotoCacheDir", DefaultConfig.PhotoCacheDir));   // 本地照片缓存路径
            elemParams.AppendChild(xmlDoc.CreateSingleElement(@"ServerPhotoDir", DefaultConfig.ServerPhotoDir)); // 服务器照片存储路径
            elemParams.AppendChild(xmlDoc.CreateSingleElement(@"ThumbSize", DefaultConfig.ThumbSize));           // 照片缩略图尺寸
            elemParams.AppendChild(xmlDoc.CreateSingleElement(@"LargeSize", DefaultConfig.LargeSize));           // 照片大图尺寸
            elemParams.AppendChild(xmlDoc.CreateSingleElement(@"ThumbShowSize", DefaultConfig.ThumbShowSize));   // 照片缩略图展示尺寸

            xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration(@"1.0", @"gb2312", null));
            xmlDoc.AppendChild(elemParams);
            xmlDoc.Save(ConfigFilePath);
        }
        /// <summary>
        /// Сохранить свободный параметр формы.
        /// </summary>
        /// <param name="form">Форма, которой принадлежит этот параметр.</param>
        /// <param name="paramName">Имя параметра.</param>
        /// <param name="paramValue">Значение параметра в виде строки.</param>
        internal static void SaveFormCustomParameter(Form form, string paramName, string paramValue)
        {
            // Форма не нуль, имя формы не нуль, имя параметра не нуль.
            if (!string.IsNullOrEmpty(paramName) && form != null && !string.IsNullOrEmpty(form.Name))
            {
                // Корневой элемент конфигурации программы.
                XmlNode root = localParams[ProgramConfiguraton.trainerRootNodeName];
                if (root == null)
                {
                    // Создаем корень, если его нет.
                    root = localParams.CreateElement(ProgramConfiguraton.trainerRootNodeName);
                    localParams.AppendChild(root);
                }

                // Элемент формы.
                XmlNode formNode = root[form.Name];
                if (formNode == null)
                {
                    // Создаем его, если нет.
                    formNode = localParams.CreateElement(form.Name);
                    root.AppendChild(formNode);
                }

                // Элемент параметра.
                XmlNode formParamValue = formNode[paramName];
                if (formParamValue == null)
                {
                    // Создаем его, если нет.
                    formParamValue = localParams.CreateElement(paramName);
                    formNode.AppendChild(formParamValue);
                }
                // Сохраняем значение параметра.
                formParamValue.InnerText = paramValue;
            }
        }
Beispiel #6
0
        private static void AppendConfig(ConfigXmlDocument configDocument, ConfigurationUserLevel userLevel)
        {
            var c = ConfigurationManager.OpenExeConfiguration(userLevel);

            if (c.HasFile)
            {
                if (configDocument.DocumentElement == null)
                {
                    configDocument.Load(c.FilePath);
                }
                else
                {
                    var other = new ConfigXmlDocument();
                    other.Load(c.FilePath);

                    {
                        XmlElement usg         = null;
                        string     usgChildren = null;

                        foreach (XmlElement s in other.SelectNodes("/configuration/configSections/sectionGroup[@name=\"userSettings\"]/section"))
                        {
                            if (usg == null)
                            {
                                usg = (XmlElement)configDocument.SelectSingleNode("/configuration/configSections/sectionGroup[@name=\"userSettings\"]");
                                if (usg == null)
                                {
                                    var cs = configDocument.DocumentElement.GetOrPrepend("configSections");

                                    usg = configDocument.CreateElement("sectionGroup");

                                    foreach (XmlAttribute attr in s.ParentNode.Attributes)
                                    {
                                        usg.SetAttribute(attr.LocalName, attr.NamespaceURI, attr.Value);
                                    }
                                    usg.InnerXml = s.ParentNode.InnerXml;
                                    cs.AppendChild(usg);
                                    break;
                                }
                                usgChildren = usg.InnerXml;
                            }

                            usgChildren += s.OuterXml;
                        }
                        if (usgChildren != null)
                        {
                            usg.InnerXml = usgChildren;
                        }
                    }
                    {
                        XmlElement us = null;
                        foreach (XmlElement se in other.SelectNodes("/configuration/userSettings/*/setting"))
                        {
                            if (us == null)
                            {
                                us = configDocument.DocumentElement.GetOrAppend("userSettings");
                            }
                            var secName = se.ParentNode.LocalName;
                            var ps      = us.GetOrAppend(secName);
                            var name    = se.GetAttribute("name");
                            var sete    = ps.GetByNameOrAppend("setting", name, "name", name, "serializeAs", se.GetAttribute("serializeAs"));
                            sete.InnerXml = se.InnerXml;
                        }
                    }
                }
            }
        }