You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
10 KiB
292 lines
10 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Xml;
|
|
using System.IO;
|
|
|
|
namespace SiaSun.LMS.WCFHost
|
|
{
|
|
public partial class CONFIG : Form
|
|
{
|
|
string strAppName = null;
|
|
DataTable tableApp = null;
|
|
SiaSun.LMS.Common.XmlFiles xmlDoc = null;
|
|
|
|
SiaSun.LMS.Common.XmlFiles xmlDocMap = null;
|
|
|
|
/// <summary>
|
|
/// 构造函数
|
|
/// </summary>
|
|
public CONFIG()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
//加载窗体
|
|
private void CONFIG_Load(object sender, EventArgs e)
|
|
{
|
|
//加载App数据
|
|
LoadAppData();
|
|
}
|
|
|
|
#region ------App
|
|
|
|
/// <summary>
|
|
/// 加载数据
|
|
/// </summary>
|
|
private void LoadAppData()
|
|
{
|
|
//初始化表集合
|
|
if (tableApp == null)
|
|
{
|
|
tableApp = new DataTable();
|
|
tableApp.Columns.Add("key");
|
|
tableApp.Columns.Add("value");
|
|
//设置唯一约束
|
|
tableApp.Columns[0].Unique = true;
|
|
}
|
|
|
|
//清除数据
|
|
tableApp.Rows.Clear();
|
|
|
|
//加载数据
|
|
try
|
|
{
|
|
strAppName = Application.ExecutablePath.Substring(0, (Application.ExecutablePath.Length)) + ".config";
|
|
xmlDoc = new SiaSun.LMS.Common.XmlFiles(strAppName);
|
|
if (xmlDoc != null)
|
|
{
|
|
//找到所有的添加节点
|
|
foreach (System.Xml.XmlNode node in xmlDoc.SelectNodes("/configuration/appSettings/add"))
|
|
{
|
|
tableApp.Rows.Add(node.Attributes[0].InnerText, node.Attributes[1].InnerText);
|
|
}
|
|
}
|
|
|
|
//接受更改
|
|
tableApp.AcceptChanges();
|
|
|
|
//设置数据源
|
|
this.gridAPP.DataSource = tableApp;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show( ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加配置信息
|
|
/// </summary>
|
|
private void AddConfig(XmlNode nodeParent, DataRow rowApp)
|
|
{
|
|
//判断值类型
|
|
if (rowApp.IsNull(rowApp.Table.Columns[0]) || string.IsNullOrEmpty(rowApp[0].ToString()))
|
|
{
|
|
MessageBox.Show(string.Format("key名称不允许空!"));
|
|
return;
|
|
}
|
|
|
|
XmlNode nodeAdd = nodeParent.AppendChild(xmlDoc.CreateNode(XmlNodeType.Element, "add", nodeParent.NamespaceURI));
|
|
nodeAdd.Attributes.Append(xmlDoc.CreateAttribute("key")).InnerText = rowApp[0].ToString();
|
|
nodeAdd.Attributes.Append(xmlDoc.CreateAttribute("value")).InnerText = rowApp[1].ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新配置信息
|
|
/// </summary>
|
|
private void UpdateConfig(XmlNode nodeParent, DataRow rowApp)
|
|
{
|
|
//判断值类型
|
|
if (rowApp.IsNull(rowApp.Table.Columns[0]) || string.IsNullOrEmpty(rowApp[0].ToString()))
|
|
{
|
|
MessageBox.Show( string.Format("key名称不允许空!"));
|
|
return;
|
|
}
|
|
XmlNode nodeFind = nodeParent.SelectSingleNode("//add[@key='" + rowApp[0].ToString() + "']");
|
|
if (nodeFind != null)
|
|
{
|
|
nodeFind.Attributes[1].InnerText = rowApp[1].ToString();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除配置信息
|
|
/// </summary>
|
|
private void DeleteConfig(XmlNode nodeParent, DataRow rowApp)
|
|
{
|
|
XmlNode nodeFind = nodeParent.SelectSingleNode("//add[@key='" + rowApp[0, DataRowVersion.Original].ToString() + "']");
|
|
if (nodeFind != null)
|
|
{
|
|
nodeParent.RemoveChild(nodeFind);
|
|
}
|
|
}
|
|
|
|
//保存APP信息
|
|
private void btnAppSave_Click(object sender, EventArgs e)
|
|
{
|
|
if (xmlDoc == null)
|
|
return;
|
|
|
|
//提交保存
|
|
this.gridAPP.EndEdit();
|
|
this.BindingContext[this.gridAPP.DataSource, this.gridAPP.DataMember].EndCurrentEdit();
|
|
|
|
if (MessageBox.Show("确定保存App配置信息?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
|
|
{
|
|
DataTable tableChanages = tableApp.GetChanges();
|
|
if (tableApp != null)
|
|
{
|
|
//获得上级节点
|
|
XmlNode nodeTop = xmlDoc.FindNode("configuration/appSettings");
|
|
if (nodeTop != null)
|
|
{
|
|
foreach (DataRow rowApp in tableChanages.Rows)
|
|
{
|
|
//判断状态
|
|
if (rowApp.RowState == DataRowState.Added) //添加
|
|
{
|
|
AddConfig(nodeTop, rowApp);
|
|
}
|
|
else if (rowApp.RowState == DataRowState.Modified) //保存更新
|
|
{
|
|
UpdateConfig(nodeTop, rowApp);
|
|
}
|
|
else if (rowApp.RowState == DataRowState.Deleted) //删除
|
|
{
|
|
DeleteConfig(nodeTop, rowApp);
|
|
}
|
|
}
|
|
|
|
//保存更新
|
|
xmlDoc.Save(strAppName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//刷新重新加载
|
|
private void btnAppUpdate_Click(object sender, EventArgs e)
|
|
{
|
|
LoadAppData();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ------Map
|
|
|
|
/// <summary>
|
|
/// 更改SqlMap选项
|
|
/// </summary>
|
|
private void cmbSqlMap_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.cmbSqlMap.SelectedItem == null)
|
|
return;
|
|
|
|
//加载SqlMap文件
|
|
this.LoadMapData(this.cmbSqlMap.Text);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载Map数据
|
|
/// </summary>
|
|
private void LoadMapData(string MapFileName)
|
|
{
|
|
xmlDocMap = new SiaSun.LMS.Common.XmlFiles(MapFileName);
|
|
if (xmlDocMap != null)
|
|
{
|
|
XmlNodeList listNode = xmlDocMap.ChildNodes;
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "sqlMapConfig") > 0)
|
|
{
|
|
XmlNode nodeRoot = listNode.Cast<XmlNode>().First(r => r.Name == "sqlMapConfig");
|
|
listNode = nodeRoot.ChildNodes;
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "database") > 0)
|
|
{
|
|
//数据访问提供程序类型
|
|
XmlNode nodeDataBase = listNode.Cast<XmlNode>().First(r => r.Name == "database");
|
|
listNode = nodeDataBase.ChildNodes;
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "provider") > 0)
|
|
{
|
|
//数据访问提供程序
|
|
XmlNode nodeProvider = listNode.Cast<XmlNode>().First(r => r.Name == "provider");
|
|
if (nodeProvider != null)
|
|
{
|
|
cmbProvider.Text = nodeProvider.Attributes["name"].InnerText;
|
|
}
|
|
}
|
|
|
|
//连接字符串
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "dataSource") > 0)
|
|
{
|
|
XmlNode nodeSource = listNode.Cast<XmlNode>().First(r => r.Name == "dataSource");
|
|
if (nodeSource != null)
|
|
{
|
|
txtConnStr.Text = nodeSource.Attributes["connectionString"].InnerText;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//保存Map数据信息
|
|
private void btnMapSave_Click(object sender, EventArgs e)
|
|
{
|
|
if (xmlDocMap == null)
|
|
return;
|
|
|
|
if (MessageBox.Show("确定保存Map配置信息?","系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.Cancel)
|
|
return;
|
|
|
|
XmlNodeList listNode = xmlDocMap.ChildNodes;
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "sqlMapConfig") > 0)
|
|
{
|
|
XmlNode nodeRoot = listNode.Cast<XmlNode>().First(r => r.Name == "sqlMapConfig");
|
|
listNode = nodeRoot.ChildNodes;
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "database") > 0)
|
|
{
|
|
//数据访问提供程序类型
|
|
XmlNode nodeDataBase = listNode.Cast<XmlNode>().First(r => r.Name == "database");
|
|
listNode = nodeDataBase.ChildNodes;
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "provider") > 0)
|
|
{
|
|
//数据访问提供程序
|
|
XmlNode nodeProvider = listNode.Cast<XmlNode>().First(r => r.Name == "provider");
|
|
if (nodeProvider != null)
|
|
{
|
|
nodeProvider.Attributes["name"].InnerText = cmbProvider.Text;
|
|
}
|
|
}
|
|
|
|
//连接字符串
|
|
if (listNode.Cast<XmlNode>().Count(r => r.Name == "dataSource") > 0)
|
|
{
|
|
XmlNode nodeSource = listNode.Cast<XmlNode>().First(r => r.Name == "dataSource");
|
|
if (nodeSource != null)
|
|
{
|
|
nodeSource.Attributes["connectionString"].InnerText = txtConnStr.Text;
|
|
}
|
|
}
|
|
|
|
//保存
|
|
this.xmlDocMap.Save(this.cmbSqlMap.Text);
|
|
}
|
|
}
|
|
}
|
|
|
|
//刷新重新加载
|
|
private void btnMapUpdate_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.cmbSqlMap.SelectedItem == null)
|
|
return;
|
|
LoadMapData(this.cmbSqlMap.Text);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|