using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Xml;
using System.Xaml;
using System.IO;
using System.Collections;
using System.Net;
//using System.Net.Http;
using System.Text.RegularExpressions;
using System.Drawing;
using System.Windows.Forms;
using Container.Model;
using System.Xml.Serialization;
using Transitionals;
using System.Runtime.InteropServices;
using Container.Services;
namespace Container.Common
{
public static class CommonMethod
{
///
/// 反序列化XML为类实例
///
///
///
///
public static T DeserializeXML(string xmlObj)
{
try
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
using (StringReader reader = new StringReader(xmlObj))
{
return (T)serializer.Deserialize(reader);
}
}
catch (Exception ex)
{
//MessageBox.Show(ex.ToString());
return default(T);
}
}
///
/// 序列化类实例为XML
///
///
///
///
public static string SerializeXML(T obj)
{
try
{
using (StringWriter writer = new StringWriter())
{
new XmlSerializer(obj.GetType()).Serialize((TextWriter)writer, obj);
return writer.ToString();
}
}
catch
{
return string.Empty;
}
}
///
/// 切换效果
///
/// 百叶窗-0,遮帘 -1,淡化 - 2,渐变 -3,溶解 - 4,旋转 - 5
///
public static Transition GetTransition(string effect)
{
//所有的变换
//Transitionals.Transitions.StarTransition //星
//Transitionals.Transitions.RotateTransition //3d旋转
//Transitionals.Transitions.VerticalWipeTransition//下拉
//Transitionals.Transitions.PageTransition //翻页
//Transitionals.Transitions.RollTransition //旋转出
//Transitionals.Transitions.DiamondsTransition //棋盒棱形
//Transitionals.Transitions.VerticalBlindsTransition //垂直百叶窗
//Transitionals.Transitions.HorizontalWipeTransition //左拉
//Transitionals.Transitions.FadeAndBlurTransition //淡入
//Transitionals.Transitions.ExplosionTransition //球形散开
//Transitionals.Transitions.CheckerboardTransition //棋盒方形
//Transitionals.Transitions.TranslateTransition //飞入
//Transitionals.Transitions.RotateWipeTransition //旋转擦除
//Transitionals.Transitions.MeltTransition //柱状
//Transitionals.Transitions.DiagonalWipeTransition //斜擦除
//Transitionals.Transitions.FlipTransition //单面翻书
//Transitionals.Transitions.DotsTransition //球状棋盒
//Transitionals.Transitions.FadeAndGrowTransition //淡入
//Transitionals.Transitions.DoubleRotateWipeTransition //双线擦除
//Transitionals.Transitions.DoorTransition //门状
//Transitionals.Transitions.HorizontalBlindsTransition //水平百叶窗
//Transitionals.Transitions.FadeTransition //溶解
switch (effect)
{
case "马赛克":
return new Transitionals.Transitions.CheckerboardTransition();
case "上下滑动":
return new Transitionals.Transitions.VerticalWipeTransition();
case "左右滑动":
return new Transitionals.Transitions.HorizontalWipeTransition();
case "渐入":
return new Transitionals.Transitions.FadeTransition();
case "4":
return new Transitionals.Transitions.FadeTransition();
case "5":
return new Transitionals.Transitions.RollTransition();
default:
return new Transitionals.Transitions.FadeTransition();
}
}
/////
///// 以逆时针为方向对图像进行旋转
/////
///// 位图流
///// 旋转角度[0,360](前台给的)
/////
//public Bitmap RotateImg(System.Drawing.Image b, int angle)
//{
// angle = angle % 360;
// //弧度转换
// double radian = angle * Math.PI / 180.0;
// double cos = Math.Cos(radian);
// double sin = Math.Sin(radian);
// //原图的宽和高
// int w = (int)b.Width;
// int h = (int)b.Height;
// int W = (int)(Math.Max(Math.Abs(w * cos - h * sin), Math.Abs(w * cos + h * sin)));
// int H = (int)(Math.Max(Math.Abs(w * sin - h * cos), Math.Abs(w * sin + h * cos)));
// //目标位图
// Bitmap dsImage = new Bitmap(W, H);
// System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(dsImage);
// g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
// g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
// //计算偏移量
// System.Drawing.Point Offset = new System.Drawing.Point((int)(W - w) / 2, (int)(H - h) / 2);
// //构造图像显示区域:让图像的中心与窗口的中心点一致
// System.Drawing.Rectangle rect = new System.Drawing.Rectangle(Offset.X, Offset.Y, w, h);
// System.Drawing.Point center = new System.Drawing.Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
// g.TranslateTransform(center.X, center.Y);
// g.RotateTransform(360 - angle);
// //恢复图像在水平和垂直方向的平移
// g.TranslateTransform(-center.X, -center.Y);
// g.DrawImage(b, rect);
// //重至绘图的所有变换
// g.ResetTransform();
// g.Save();
// g.Dispose();
// //保存旋转后的图片
// b.Dispose();
// //dsImage.Save("FocusPoint.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
// return dsImage;
//}
// 映射 DEVMODE 结构
// 可以参照 DEVMODE结构的指针定义:
// http://msdn.microsoft.com/en-us/library/windows/desktop/dd183565(v=vs.85).aspx
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct DEVMODE
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmFormName;
public short dmLogPixels;
public short dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
};
// Win32 函数在托管环境下的声明
public class NativeMethods
{
// 平台调用的申明
[DllImport("user32.dll")]
public static extern int EnumDisplaySettings(
string deviceName, int modeNum, ref DEVMODE devMode);
[DllImport("user32.dll")]
public static extern int ChangeDisplaySettings(
ref DEVMODE devMode, int flags);
// 控制改变屏幕分辨率的常量
public const int ENUM_CURRENT_SETTINGS = -1;
public const int CDS_UPDATEREGISTRY = 0x01;
public const int CDS_TEST = 0x02;
public const int DISP_CHANGE_SUCCESSFUL = 0;
public const int DISP_CHANGE_RESTART = 1;
public const int DISP_CHANGE_FAILED = -1;
// 控制改变方向的常量定义
public const int DMDO_DEFAULT = 0;
public const int DMDO_90 = 1;
public const int DMDO_180 = 2;
public const int DMDO_270 = 3;
}
///
/// 改变分辨率
///
/// 0:切换横屏,1:切换竖屏
public static int ChangeResolution(int displayOrientation)
{
// 初始化 DEVMODE结构
DEVMODE devmode = new DEVMODE();
devmode.dmDeviceName = new String(new char[32]);
devmode.dmFormName = new String(new char[32]);
devmode.dmSize = (short)Marshal.SizeOf(devmode);
if (0 != NativeMethods.EnumDisplaySettings(null, NativeMethods.ENUM_CURRENT_SETTINGS, ref devmode))
{
//// 改变屏幕分辨率
//int iRet = NativeMethods.ChangeDisplaySettings(ref devmode, NativeMethods.CDS_TEST);
//if (iRet == NativeMethods.DISP_CHANGE_FAILED)
//{
// //MessageBox.Show("不能执行你的请求", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
//}
//else
//{
// int temp = devmode.dmPelsWidth;
// devmode.dmPelsWidth = devmode.dmPelsHeight;
// devmode.dmPelsHeight = temp;
// if (displayOrientation == 0)
// devmode.dmDisplayOrientation = NativeMethods.DMDO_90;
// else
// devmode.dmDisplayOrientation = NativeMethods.DMDO_DEFAULT;
// iRet = NativeMethods.ChangeDisplaySettings(ref devmode, NativeMethods.CDS_UPDATEREGISTRY);
// switch (iRet)
// {
// // 成功改变
// case NativeMethods.DISP_CHANGE_SUCCESSFUL:
// {
// break;
// }
// case NativeMethods.DISP_CHANGE_RESTART:
// {
// // MessageBox.Show("你需要重新启动电脑设置才能生效", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// break;
// }
// default:
// {
// // MessageBox.Show("改变屏幕分辨率失败", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
// break;
// }
// }
//}
}
if (devmode.dmDisplayOrientation == 0)
return 0;
else if (devmode.dmDisplayOrientation == 1)
return 90;
else if (devmode.dmDisplayOrientation == 2)
return 180;
else
return -90;
}
[DllImport("user32.dll")]
static extern void keybd_event
(
byte bVk,// 虚拟键值
byte bScan,// 硬件扫描码
uint dwFlags,// 动作标识
IntPtr dwExtraInfo// 与键盘动作关联的辅加信息
);
}
class Class_Config
{
private Class_Log log = new Class_Log();
private App app = ((App)System.Windows.Application.Current);
///
/// 获取当前版本号
///
public string GetVersion()
{
string currentVersion = "v1.2.5";
try
{
string localPath = Directory.GetCurrentDirectory() + "\\ScreenVersion.txt";
FileStream fs = new FileStream(localPath, FileMode.Open);
using (StreamReader sr = new StreamReader(fs))
{
string temp = sr.ReadLine();
currentVersion = temp.Substring(temp.LastIndexOf("V"));
}
fs.Close();
}
catch
{
currentVersion = "v1.2.5";
}
return currentVersion;
}
///
/// 截屏
///
public static string PrintScreen(string imgname)
{
string path = Environment.CurrentDirectory + @"\Screen\" + imgname;
Bitmap bit = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bit);
g.CopyFromScreen(new System.Drawing.Point(0, 0), new System.Drawing.Point(0, 0), bit.Size);
try
{
if (File.Exists(path))
File.Delete(path);
bit.Save(path);
}
catch(Exception ex)
{
// System.Windows.MessageBox.Show(ex.ToString());
}
finally
{
g.Dispose();
bit.Dispose();
}
return path;
}
///
/// /加载配置
///
public void LoadConfig()
{
try
{
string AddressIP = string.Empty;
foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
{
if (_IPAddress.AddressFamily.ToString() == "InterNetwork")
{
AddressIP = _IPAddress.ToString();
}
}
string fpath = Directory.GetCurrentDirectory() + "\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//Config.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Config");
XmlNode xnSecond = xnFirst.SelectSingleNode("DeviceInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现DeviceInfo标签");
return;
}
else
{
app.BuildingID = xnSecond.SelectSingleNode("BuildingID").InnerText;
app.Floor = xnSecond.SelectSingleNode("Floor").InnerText;
app.deviceid = xnSecond.SelectSingleNode("deviceid").InnerText;
app.devicemark = xnSecond.SelectSingleNode("devicemark").InnerText;
app.DeviceType = xnSecond.SelectSingleNode("devicetype").InnerText;
app.FileServerPath= xnSecond.SelectSingleNode("fileserverpath").InnerText;
}
log.WriteLogFile(app.deviceid,"config");
xnSecond = xnFirst.SelectSingleNode("Http");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现Http标签");
return;
}
else
{
if (xnSecond.SelectSingleNode("Url").InnerText != "")
app.HttpUrl = xnSecond.SelectSingleNode("Url").InnerText;
log.WriteLogFile(xnSecond.SelectSingleNode("LocalIP").InnerText, "config");
log.WriteLogFile(AddressIP, "config");
if (xnSecond.SelectSingleNode("LocalIP").InnerText != "")
{
if (AddressIP != xnSecond.SelectSingleNode("LocalIP").InnerText&& AddressIP!="127.0.0.1")
{
app.LocalIP = "";
app.BuildingID = "";
app.Floor = "";
app.devicemark = "";
app.deviceid = "";
app.HttpUrl = "";
app.DeviceType = "";
app.FileServerPath = "";
}
else
{
app.LocalIP = xnSecond.SelectSingleNode("LocalIP").InnerText;
}
}
}
xnSecond = xnFirst.SelectSingleNode("MQTT");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现MQTT标签");
return;
}
else
{
if (xnSecond.SelectSingleNode("UserName").InnerText != "")
app.rabbitMQ.UserName = xnSecond.SelectSingleNode("UserName").InnerText;
if (xnSecond.SelectSingleNode("Password").InnerText != "")
app.rabbitMQ.Password = xnSecond.SelectSingleNode("Password").InnerText;
if (xnSecond.SelectSingleNode("HostName").InnerText != "")
app.rabbitMQ.HostName = xnSecond.SelectSingleNode("HostName").InnerText;
if (xnSecond.SelectSingleNode("Port").InnerText != "")
app.rabbitMQ.Port =Convert.ToInt32( xnSecond.SelectSingleNode("Port").InnerText);
}
}
else
{
XmlDocument doc = new XmlDocument(); // 创建dom对象
XmlDeclaration xmldecl;
xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null);
doc.AppendChild(xmldecl);
XmlElement root = doc.CreateElement("Config"); // 创建根节点
doc.AppendChild(root); // 加入到xml document
XmlElement FillItem; // 创建FillItem元素
FillItem = doc.CreateElement("DeviceInfo");
root.AppendChild(FillItem); // 添加到xml document
XmlElement Node = doc.CreateElement("BuildingID");
Node.InnerText = app.BuildingID;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Floor");
Node.InnerText = app.Floor;
FillItem.AppendChild(Node);
Node = doc.CreateElement("deviceid");
Node.InnerText = app.deviceid;
FillItem.AppendChild(Node);
Node = doc.CreateElement("devicemark");
Node.InnerText = app.deviceid;
FillItem.AppendChild(Node);
Node = doc.CreateElement("devicetype");
Node.InnerText = app.DeviceType;
FillItem.AppendChild(Node);
FillItem = doc.CreateElement("Http");
root.AppendChild(FillItem); // 添加到xml document
Node = doc.CreateElement("LocalIP");
Node.InnerText = app.LocalIP;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Url");
Node.InnerText = app.HttpUrl;
FillItem.AppendChild(Node);
FillItem = doc.CreateElement("MQTT");
root.AppendChild(FillItem); // 添加到xml document
Node = doc.CreateElement("UserName");
Node.InnerText = app.rabbitMQ.UserName;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Password");
Node.InnerText = app.rabbitMQ.Password;
FillItem.AppendChild(Node);
Node = doc.CreateElement("HostName");
Node.InnerText = app.rabbitMQ.HostName;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Port");
Node.InnerText = app.rabbitMQ.Port.ToString();
FillItem.AppendChild(Node);
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = System.Xml.Formatting.Indented;
doc.Save(writer);
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
stream.Position = 0;
string XMLString = sr.ReadToEnd();
doc.Save(@"config\\config.xml"); // 保存文件
sr.Close();
stream.Close();
}
}
catch (Exception e)
{
log.WriteLogFile("LoadConfig:[" + e.ToString() + "]");
}
}
///
/// /加载配置
///
public void LoadInitialConfig()
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//InitialConfig.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Config");
XmlNode xnSecond = xnFirst.SelectSingleNode("Http");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现Http标签");
return;
}
else
{
if (xnSecond.SelectSingleNode("HttpUrl").InnerText != "")
app.configurl = xnSecond.SelectSingleNode("HttpUrl").InnerText;
if (xnSecond.SelectSingleNode("WebSocketAddress").InnerText != "")
app.configwebsocket = xnSecond.SelectSingleNode("WebSocketAddress").InnerText;
if (xnSecond.SelectSingleNode("RegKey").InnerText != "")
app.mallRegKey = xnSecond.SelectSingleNode("RegKey").InnerText;
if (xnSecond.SelectSingleNode("Startexe").InnerText != "")
app.configstartexe = xnSecond.SelectSingleNode("Startexe").InnerText;
if (xnSecond.SelectSingleNode("Port").InnerText != "")
app.configport = xnSecond.SelectSingleNode("Port").InnerText;
if (xnSecond.SelectSingleNode("MallCode").InnerText != "")
app.mallCode = xnSecond.SelectSingleNode("MallCode").InnerText;
}
}
}
catch (Exception e)
{
log.WriteLogFile("LoadInitialConfig:[" + e.ToString() + "]");
}
}
///
/// /修改配置
///
public void WriteToInitialConfig()
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//InitialConfig.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Config");
XmlNode xnSecond = xnFirst.SelectSingleNode("Http");
if (xnSecond == null)
{
XmlElement HttpNode = doc.CreateElement("Http");
HttpNode.InnerText = app.deviceid;
xnFirst.AppendChild(HttpNode);
XmlElement Node = doc.CreateElement("HttpUrl");
Node.InnerText = app.configurl;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("WebSocketAddress");
Node.InnerText = app.configwebsocket;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("RegKey");
Node.InnerText = app.mallRegKey;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Startexe");
Node.InnerText = app.configstartexe;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Port");
Node.InnerText = app.configport;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("MallCode");
Node.InnerText = app.mallCode;
HttpNode.AppendChild(Node);
}
else
{
XmlNode xnnode = xnSecond.SelectSingleNode("HttpUrl");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("HttpUrl");
Node.InnerText = app.configurl;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("HttpUrl").InnerText = app.configurl;
}
xnnode = xnSecond.SelectSingleNode("RegKey");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("RegKey");
Node.InnerText = app.mallRegKey;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("RegKey").InnerText = app.mallRegKey;
}
xnnode = xnSecond.SelectSingleNode("WebSocketAddress");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("WebSocketAddress");
Node.InnerText = app.configwebsocket;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("WebSocketAddress").InnerText = app.configwebsocket;
}
xnnode = xnSecond.SelectSingleNode("Startexe");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("Startexe");
Node.InnerText = app.configstartexe;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("Startexe").InnerText = app.configstartexe;
}
xnnode = xnSecond.SelectSingleNode("Port");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("Port");
Node.InnerText = app.configport;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("Port").InnerText = app.configport;
}
xnnode = xnSecond.SelectSingleNode("MallCode");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("MallCode");
Node.InnerText = app.mallCode;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("MallCode").InnerText = app.mallCode;
}
}
doc.Save(strConfigxml);
}
else
{
XmlDocument doc = new XmlDocument(); // 创建dom对象
XmlDeclaration xmldecl;
xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null);
doc.AppendChild(xmldecl);
XmlElement root = doc.CreateElement("Config"); // 创建根节点
doc.AppendChild(root); // 加入到xml document
XmlElement HttpNode = doc.CreateElement("Http");
HttpNode.InnerText = app.deviceid;
root.AppendChild(HttpNode);
XmlElement Node = doc.CreateElement("HttpUrl");
Node.InnerText = app.configurl;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("RegKey");
Node.InnerText = app.mallRegKey;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("WebSocketAddress");
Node.InnerText = app.configwebsocket;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Startexe");
Node.InnerText = app.configstartexe;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Port");
Node.InnerText = app.configport;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("MallCode");
Node.InnerText = app.mallCode;
HttpNode.AppendChild(Node);
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = System.Xml.Formatting.Indented;
doc.Save(writer);
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
stream.Position = 0;
string XMLString = sr.ReadToEnd();
doc.Save(@"config\\InitialConfig.xml"); // 保存文件
sr.Close();
stream.Close();
}
}
catch (Exception e)
{
log.WriteLogFile("WriteConfig:[" + e.ToString() + "]");
}
}
public void WriteToConfig()
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//Config.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Config");
XmlNode xnSecond = xnFirst.SelectSingleNode("DeviceInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现DeviceInfo标签");
return;
}
else
{
XmlNode xnnode = xnSecond.SelectSingleNode("BuildingID");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("BuildingID");
Node.InnerText = app.BuildingID;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("BuildingID").InnerText = app.BuildingID;
}
xnnode = xnSecond.SelectSingleNode("Floor");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("Floor");
Node.InnerText = app.Floor;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("Floor").InnerText = app.Floor;
}
xnnode = xnSecond.SelectSingleNode("deviceid");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("deviceid");
Node.InnerText = app.deviceid;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("deviceid").InnerText = app.deviceid;
}
xnnode = xnSecond.SelectSingleNode("devicemark");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("devicemark");
Node.InnerText = app.devicemark;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("devicemark").InnerText = app.devicemark;
}
xnnode = xnSecond.SelectSingleNode("devicetype");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("devicetype");
Node.InnerText = app.DeviceType;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("devicetype").InnerText = app.DeviceType;
}
xnnode = xnSecond.SelectSingleNode("fileserverpath");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("fileserverpath");
Node.InnerText = app.FileServerPath;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("fileserverpath").InnerText = app.FileServerPath;
}
}
xnSecond = xnFirst.SelectSingleNode("Http");
if (xnSecond == null)
{
XmlElement HttpNode = doc.CreateElement("Http");
HttpNode.InnerText = app.deviceid;
xnFirst.AppendChild(HttpNode);
XmlElement Node = doc.CreateElement("LocalIP");
Node.InnerText = app.LocalIP;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Url");
Node.InnerText = app.HttpUrl;
HttpNode.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("LocalIP").InnerText = app.LocalIP;
xnSecond.SelectSingleNode("Url").InnerText = app.HttpUrl;
}
xnSecond = xnFirst.SelectSingleNode("MQTT");
if (xnSecond == null)
{
XmlElement HttpNode = doc.CreateElement("MQTT");
HttpNode.InnerText = app.deviceid;
xnFirst.AppendChild(HttpNode);
XmlElement Node = doc.CreateElement("UserName");
Node.InnerText = app.rabbitMQ.UserName;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Password");
Node.InnerText = app.rabbitMQ.Password;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("HostName");
Node.InnerText = app.rabbitMQ.HostName;
HttpNode.AppendChild(Node);
Node = doc.CreateElement("Port");
Node.InnerText = app.rabbitMQ.Port.ToString();
HttpNode.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("UserName").InnerText = app.rabbitMQ.UserName;
xnSecond.SelectSingleNode("Password").InnerText = app.rabbitMQ.Password;
xnSecond.SelectSingleNode("HostName").InnerText = app.rabbitMQ.HostName;
xnSecond.SelectSingleNode("Port").InnerText = app.rabbitMQ.Port.ToString();
}
doc.Save(strConfigxml);
}
else
{
XmlDocument doc = new XmlDocument(); // 创建dom对象
XmlDeclaration xmldecl;
xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null);
doc.AppendChild(xmldecl);
XmlElement root = doc.CreateElement("Config"); // 创建根节点
doc.AppendChild(root); // 加入到xml document
XmlElement FillItem; // 创建FillItem元素
XmlElement FillMQTTItem; // 创建FillItem元素
FillItem = doc.CreateElement("DeviceInfo");
root.AppendChild(FillItem); // 添加到xml document
FillMQTTItem = doc.CreateElement("MQTT");
root.AppendChild(FillMQTTItem); // 添加到xml document
XmlElement Node = doc.CreateElement("BuildingID");
Node.InnerText = app.BuildingID;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Floor");
Node.InnerText = app.Floor;
FillItem.AppendChild(Node);
Node = doc.CreateElement("deviceid");
Node.InnerText = app.deviceid;
FillItem.AppendChild(Node);
Node = doc.CreateElement("devicemark");
Node.InnerText = app.devicemark;
FillItem.AppendChild(Node);
Node = doc.CreateElement("devicetype");
Node.InnerText = app.DeviceType;
FillItem.AppendChild(Node);
Node = doc.CreateElement("fileserverpath");
Node.InnerText = app.FileServerPath;
FillItem.AppendChild(Node);
FillItem = doc.CreateElement("Http");
root.AppendChild(FillItem); // 添加到xml document
Node = doc.CreateElement("LocalIP");
Node.InnerText = app.LocalIP;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Url");
Node.InnerText = app.HttpUrl;
FillItem.AppendChild(Node);
XmlElement NodeMQTT = doc.CreateElement("UserName");
NodeMQTT.InnerText = app.rabbitMQ == null ? "" : app.rabbitMQ.UserName;
FillMQTTItem.AppendChild(NodeMQTT);
NodeMQTT = doc.CreateElement("Password");
NodeMQTT.InnerText = app.rabbitMQ == null ? "" : app.rabbitMQ.Password;
FillMQTTItem.AppendChild(NodeMQTT);
NodeMQTT = doc.CreateElement("HostName");
NodeMQTT.InnerText = app.rabbitMQ == null ? "" : app.rabbitMQ.HostName;
FillMQTTItem.AppendChild(NodeMQTT);
NodeMQTT = doc.CreateElement("Port");
NodeMQTT.InnerText = app.rabbitMQ == null ? "" : app.rabbitMQ.Port.ToString();
FillMQTTItem.AppendChild(NodeMQTT);
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = System.Xml.Formatting.Indented;
doc.Save(writer);
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
stream.Position = 0;
string XMLString = sr.ReadToEnd();
doc.Save(@"config\\config.xml"); // 保存文件
sr.Close();
stream.Close();
}
}
catch (Exception e)
{
log.WriteLogFile("WriteConfig:[" + e.ToString() + "]");
}
}
public bool WriteToExeConfig(AppListModel exeinfo)
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//ExeConfig.xml";
if (File.Exists(strConfigxml) == true)
{
if (!UpdateExeConfig(exeinfo))
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Root");
XmlElement FillItem; // 创建FillItem元素
FillItem = doc.CreateElement("ExeInfo");
// 添加到xml document
XmlElement Node = doc.CreateElement("AppID");
Node.InnerText = exeinfo.AppID;
FillItem.AppendChild(Node);
Node = doc.CreateElement("AppType");
Node.InnerText = exeinfo.AppType;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Code");
Node.InnerText = exeinfo.Code;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Default");
Node.InnerText = exeinfo.Default;
FillItem.AppendChild(Node);
Node = doc.CreateElement("File");
Node.InnerText = exeinfo.File;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Logo");
Node.InnerText = exeinfo.Logo;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Name");
Node.InnerText = exeinfo.Name;
FillItem.AppendChild(Node);
Node = doc.CreateElement("PackageName");
Node.InnerText = exeinfo.PackageName;
FillItem.AppendChild(Node);
Node = doc.CreateElement("PlatformType");
Node.InnerText = exeinfo.PlatformType;
FillItem.AppendChild(Node);
Node = doc.CreateElement("ShelfTime");
Node.InnerText = exeinfo.ShelfTime;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Startup");
Node.InnerText = exeinfo.Startup;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Version");
Node.InnerText = exeinfo.Version;
FillItem.AppendChild(Node);
xnFirst.AppendChild(FillItem);
doc.Save(strConfigxml);
}
}
else
{
XmlDocument doc = new XmlDocument(); // 创建dom对象
XmlDeclaration xmldecl;
xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null);
doc.AppendChild(xmldecl);
XmlElement root = doc.CreateElement("Root"); // 创建根节点
doc.AppendChild(root); // 加入到xml document
XmlElement FillItem; // 创建FillItem元素
FillItem = doc.CreateElement("ExeInfo");
// 添加到xml document
XmlElement Node = doc.CreateElement("AppID");
Node.InnerText = exeinfo.AppID;
FillItem.AppendChild(Node);
Node = doc.CreateElement("AppType");
Node.InnerText = exeinfo.AppType;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Code");
Node.InnerText = exeinfo.Code;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Default");
Node.InnerText = exeinfo.Default;
FillItem.AppendChild(Node);
Node = doc.CreateElement("File");
Node.InnerText = exeinfo.File;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Logo");
Node.InnerText = exeinfo.Logo;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Name");
Node.InnerText = exeinfo.Name;
FillItem.AppendChild(Node);
Node = doc.CreateElement("PackageName");
Node.InnerText = exeinfo.PackageName;
FillItem.AppendChild(Node);
Node = doc.CreateElement("PlatformType");
Node.InnerText = exeinfo.PlatformType;
FillItem.AppendChild(Node);
Node = doc.CreateElement("ShelfTime");
Node.InnerText = exeinfo.ShelfTime;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Startup");
Node.InnerText = exeinfo.Startup;
FillItem.AppendChild(Node);
Node = doc.CreateElement("Version");
Node.InnerText = exeinfo.Version;
FillItem.AppendChild(Node);
root.AppendChild(FillItem);
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = System.Xml.Formatting.Indented;
doc.Save(writer);
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
stream.Position = 0;
string XMLString = sr.ReadToEnd();
doc.Save(@"config\\ExeConfig.xml"); // 保存配置文件
sr.Close();
stream.Close();
}
return true;
}
catch (Exception e)
{
log.WriteLogFile("WriteExeConfig:[" + e.ToString() + "]", "ExeConfigLog");
return false;
}
}
public bool UpdateExeConfig(AppListModel exeinfo)
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\ExeConfig.xml";
if (!File.Exists(fpath))
{
return WriteToExeConfig(exeinfo);
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//ExeConfig.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Root");
XmlNode xnSecond = xnFirst.SelectSingleNode("ExeInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现ExeInfo标签");
return false;
}
XmlNodeList xnChildList = xnFirst.ChildNodes;
for (int i = 0; i < xnChildList.Count; i++)
{
XmlNode xnChild = xnChildList.Item(i);
XmlNodeList xnn = xnChild.ChildNodes;
for (int j = 0; j < xnn.Count; j++)
{
XmlNode xnChildItem = xnn.Item(j);
if (xnChildItem.LocalName.Equals("Code"))
{
if (xnChildItem.InnerText.ToString().Trim().Equals(exeinfo.Code))
{
xnChild.SelectSingleNode("AppID").InnerText = exeinfo.AppID;
xnChild.SelectSingleNode("AppType").InnerText = exeinfo.AppType;
xnChild.SelectSingleNode("Default").InnerText = exeinfo.Default;
xnChild.SelectSingleNode("File").InnerText = exeinfo.File;
xnChild.SelectSingleNode("Logo").InnerText = exeinfo.Logo;
xnChild.SelectSingleNode("Name").InnerText = exeinfo.Name;
xnChild.SelectSingleNode("PackageName").InnerText = exeinfo.PackageName;
xnChild.SelectSingleNode("PlatformType").InnerText = exeinfo.PlatformType;
xnChild.SelectSingleNode("ShelfTime").InnerText = exeinfo.ShelfTime;
xnChild.SelectSingleNode("Startup").InnerText = exeinfo.Startup;
xnChild.SelectSingleNode("Version").InnerText = exeinfo.Version;
doc.Save(strConfigxml);
return true;
}
}
}
}
}
}
catch (Exception e)
{
log.WriteLogFile("UpdateExeConfig:[" + e.ToString() + "]", "ExeConfigLog");
}
return false;
}
public bool RemoveExeConfig(string code,ref string filePath,ref string logo,ref string startup)
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\ExeConfig.xml";
if (!File.Exists(fpath))
{
log.WriteLogFile("配置文件错误-未发现ExeConfig.xml文件");
return false;
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//ExeConfig.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Root");
XmlNode xnSecond = xnFirst.SelectSingleNode("ExeInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现ExeInfo标签");
return false;
}
XmlNodeList xnChildList = xnFirst.ChildNodes;
for (int i = 0; i < xnChildList.Count; i++)
{
XmlNode xnChild = (XmlElement)xnChildList.Item(i);
XmlNodeList xnn = xnChild.ChildNodes;
for (int j = 0; j < xnn.Count; j++)
{
XmlNode xnChildItem = xnn.Item(j);
if (xnChildItem.LocalName.Equals("Code"))
{
if (xnChildItem.InnerText.ToString().Trim().Equals(code))
{
xnFirst.RemoveChild(xnChild);
filePath= xnChild.SelectSingleNode("File").InnerText;
logo = xnChild.SelectSingleNode("Logo").InnerText;
startup= xnChild.SelectSingleNode("Startup").InnerText;
doc.Save(strConfigxml);
return true;
}
}
}
}
}
}
catch (Exception e)
{
log.WriteLogFile("UpdateExeConfig:[" + e.ToString() + "]", "ExeConfigLog");
}
return false;
}
public bool WriteToAppTimeConfig(List timeList)
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//AppTimeConfig.xml";
if (File.Exists(strConfigxml))
{
File.Delete(strConfigxml);
}
if (timeList.Count > 0)
{
XmlDocument doc = new XmlDocument(); // 创建dom对象
XmlDeclaration xmldecl;
xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null);
doc.AppendChild(xmldecl);
XmlElement root = doc.CreateElement("Root"); // 创建根节点
doc.AppendChild(root); // 加入到xml document
foreach (var item in timeList)
{
XmlElement FillItem; // 创建FillItem元素
FillItem = doc.CreateElement("AppTimeInfo");
// 添加到xml document
XmlElement Node = doc.CreateElement("AppCode");
Node.InnerText = item.AppCode;
FillItem.AppendChild(Node);
Node = doc.CreateElement("BeginTimeSlot");
Node.InnerText = item.BeginTimeSlot;
FillItem.AppendChild(Node);
Node = doc.CreateElement("EndTimeSlot");
Node.InnerText = item.EndTimeSlot;
FillItem.AppendChild(Node);
root.AppendChild(FillItem);
}
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = System.Xml.Formatting.Indented;
doc.Save(writer);
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
stream.Position = 0;
string XMLString = sr.ReadToEnd();
doc.Save(@"config\\AppTimeConfig.xml"); // 保存配置文件
sr.Close();
stream.Close();
}
return true;
}
catch (Exception e)
{
log.WriteLogFile("WriteToaAppTimeConfig:[" + e.ToString() + "]", "ExeConfigLog");
return false;
}
}
///
/// 读取ExeConfig配置文件中的应用信息
///
public void ReadAppInfo(ref List AppList)
{
try
{
AppList.Clear();
string fpath = Directory.GetCurrentDirectory() + "\\config\\ExeConfig.xml";
if (!File.Exists(fpath))
{
return;
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//ExeConfig.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Root");
XmlNode xnSecond = xnFirst.SelectSingleNode("ExeInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现ExeInfo标签");
return;
}
XmlNodeList xnChildList = xnFirst.ChildNodes;
for (int i = 0; i < xnChildList.Count; i++)
{
XmlNode xnChild = xnChildList.Item(i);
XmlNodeList xnn = xnChild.ChildNodes;
AppListModel appinfo = new AppListModel();
if (xnn.Count > 0)
{
for (int j = 0; j < xnn.Count; j++)
{
XmlNode xnChildItem = xnn.Item(j);
if (xnChildItem.LocalName.Equals("AppID"))
{
appinfo.AppID = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("AppType"))
{
appinfo.AppType = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("Code"))
{
appinfo.Code = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("Default"))
{
appinfo.Default = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("File"))
{
appinfo.File = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("Logo"))
{
appinfo.Logo = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("Name"))
{
appinfo.Name = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("PackageName"))
{
appinfo.PackageName = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("PlatformType"))
{
appinfo.PlatformType = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("ShelfTime"))
{
appinfo.ShelfTime = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("Startup"))
{
appinfo.Startup = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("Version"))
{
appinfo.Version = xnChildItem.InnerText.ToString();
}
}
if (string.IsNullOrEmpty(appinfo.ShelfTime) || Convert.ToDateTime(appinfo.ShelfTime) > DateTime.Now.AddDays(-1))
{
AppList.Add(appinfo);
}
}
}
}
}
catch (Exception ex)
{
log.WriteLogFile("读取ExeConfig配置文件失败"+ex.ToString(),"ExeConfigLog");
}
}
public void ReadAppTimeInfo(ref List AppTimeList)
{
try
{
AppTimeList.Clear();
string fpath = Directory.GetCurrentDirectory() + "\\config\\AppTimeConfig.xml";
if (!File.Exists(fpath))
{
return;
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//AppTimeConfig.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Root");
XmlNode xnSecond = xnFirst.SelectSingleNode("AppTimeInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现AppTimeInfo标签");
return;
}
XmlNodeList xnChildList = xnFirst.ChildNodes;
for (int i = 0; i < xnChildList.Count; i++)
{
XmlNode xnChild = xnChildList.Item(i);
XmlNodeList xnn = xnChild.ChildNodes;
AppTimeModel appTime = new AppTimeModel();
if (xnn.Count > 0)
{
for (int j = 0; j < xnn.Count; j++)
{
XmlNode xnChildItem = xnn.Item(j);
if (xnChildItem.LocalName.Equals("AppCode"))
{
appTime.AppCode = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("BeginTimeSlot"))
{
appTime.BeginTimeSlot = xnChildItem.InnerText.ToString();
}
else if (xnChildItem.LocalName.Equals("EndTimeSlot"))
{
appTime.EndTimeSlot = xnChildItem.InnerText.ToString();
}
}
AppTimeList.Add(appTime);
}
}
}
}
catch (Exception ex)
{
log.WriteLogFile("读取AppTimeInfo配置文件失败" + ex.ToString(), "AppTimeInfoLog");
}
}
public bool UpdateConfig(string devNum)
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\config\\config.xml";
if (!File.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "config//config.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Config");
XmlNode xnSecond = xnFirst.SelectSingleNode("DeviceInfo");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现DeviceInfo标签");
return false;
}
else {
XmlNode xnnode = xnSecond.SelectSingleNode("devicemark");
if (xnnode != null)
{
xnSecond.SelectSingleNode("devicemark").InnerText = app.devicemark;
}
}
doc.Save(strConfigxml);
return true;
}
}
catch (Exception e)
{
log.WriteLogFile("UpdateConfig:[" + e.ToString() + "]", "ExeConfigLog");
}
return false;
}
public void WriteToScreenConfig(string touchType, string screenEffect,string screenFilePath, string effectType)
{
try
{
string fpath = Directory.GetCurrentDirectory() + "\\exefile\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
fpath = Directory.GetCurrentDirectory() + "\\exefile\\PCScreen\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
fpath = Directory.GetCurrentDirectory() + "\\exefile\\PCScreen\\config\\";
if (!Directory.Exists(fpath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(fpath);
directoryInfo.Create();
}
string strConfigxml = AppDomain.CurrentDomain.BaseDirectory + "exefile//PCScreen//config//Screensaver.xml";
if (File.Exists(strConfigxml) == true)
{
XmlDocument doc = new XmlDocument();
doc.Load(strConfigxml);
XmlNode xnFirst = doc.SelectSingleNode("Config");
XmlNode xnSecond = xnFirst.SelectSingleNode("Parameter");
if (xnSecond == null)
{
log.WriteLogFile("配置文件错误-未发现Parameter标签");
return;
}
else
{
XmlNode xnnode = xnSecond.SelectSingleNode("TouchType");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("TouchType");
Node.InnerText = touchType;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("TouchType").InnerText = touchType;
}
xnnode = xnSecond.SelectSingleNode("ScreenEffect");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("ScreenEffect");
Node.InnerText = screenEffect;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("ScreenEffect").InnerText = screenEffect;
}
xnnode = xnSecond.SelectSingleNode("ScreenFilePath");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("ScreenFilePath");
Node.InnerText = screenFilePath;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("ScreenFilePath").InnerText = screenFilePath;
}
xnnode = xnSecond.SelectSingleNode("EffectType");
if (xnnode == null)
{
XmlElement Node = doc.CreateElement("EffectType");
Node.InnerText = effectType;
xnSecond.AppendChild(Node);
}
else
{
xnSecond.SelectSingleNode("EffectType").InnerText = effectType;
}
}
doc.Save(strConfigxml);
}
else
{
XmlDocument doc = new XmlDocument(); // 创建dom对象
XmlDeclaration xmldecl;
xmldecl = doc.CreateXmlDeclaration("1.0", "gb2312", null);
doc.AppendChild(xmldecl);
XmlElement root = doc.CreateElement("Config"); // 创建根节点
doc.AppendChild(root); // 加入到xml document
XmlElement FillItem; // 创建FillItem元素
FillItem = doc.CreateElement("Parameter");
root.AppendChild(FillItem); // 添加到xml document
XmlElement Node = doc.CreateElement("TouchType");
Node.InnerText = touchType;
FillItem.AppendChild(Node);
Node = doc.CreateElement("ScreenEffect");
Node.InnerText = screenEffect;
FillItem.AppendChild(Node);
Node = doc.CreateElement("ScreenFilePath");
Node.InnerText = screenFilePath;
FillItem.AppendChild(Node);
Node = doc.CreateElement("EffectType");
Node.InnerText = effectType;
FillItem.AppendChild(Node);
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, null);
writer.Formatting = System.Xml.Formatting.Indented;
doc.Save(writer);
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
stream.Position = 0;
string XMLString = sr.ReadToEnd();
doc.Save(@"exefile//PCScreen//config//Screensaver.xml"); // 保存文件
sr.Close();
stream.Close();
}
}
catch (Exception e)
{
log.WriteLogFile("WriteToScreenConfig:[" + e.ToString() + "]");
}
}
}
}