139 lines
4.7 KiB
C#
139 lines
4.7 KiB
C#
using Epost.Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Xml.Linq;
|
|
|
|
namespace Epost.DAL
|
|
{
|
|
public class ResultsDAL
|
|
{
|
|
string path = ConfigurationManager.AppSettings["ResultsXML"];
|
|
string nodename = "Results";
|
|
#region 新增日志
|
|
public bool CreateResult(ResultsModel model)
|
|
{
|
|
|
|
XElement xe = XElement.Load(path);
|
|
IEnumerable<XAttribute> elements = from ele in xe.Elements(nodename).Attributes().OrderByDescending(e => (string)e.Value)
|
|
select ele;
|
|
int maxNum = 0;
|
|
if (elements.Any())
|
|
{
|
|
maxNum = Convert.ToInt32(elements.First().Value == null ? 0 : Convert.ToInt32(elements.First().Value));
|
|
}
|
|
XElement controlXE = new XElement(nodename, new XAttribute("name", maxNum + 1),
|
|
new XElement("IP", model.IP),
|
|
new XElement("Address", model.Address),
|
|
new XElement("Parameter", model.Parameter),
|
|
new XElement("Port", model.Port),
|
|
new XElement("Command", model.Command));
|
|
xe.Add(controlXE);
|
|
xe.Save(path);
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 修改日志信息
|
|
public bool UpdateResult(ResultsModel Model)
|
|
{
|
|
|
|
XElement xe = XElement.Load(path);
|
|
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Attribute("name").Value.Equals(Model.ResultID))
|
|
select ele;
|
|
foreach (var ele in elements)
|
|
{
|
|
if (ele.FirstAttribute.Value == Model.ResultID)
|
|
{
|
|
ele.Element("Command").SetValue(Model.Command);
|
|
ele.Element("Address").SetValue(Model.Address);
|
|
ele.Element("IP").SetValue(Model.IP);
|
|
ele.Element("Parameter").SetValue(Model.Parameter);
|
|
ele.Element("Port").SetValue(Model.Port);
|
|
xe.Save(path);
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
return true;
|
|
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 删除日志
|
|
public bool DeleteResult(ResultsModel Model)
|
|
{
|
|
|
|
XElement xe = XElement.Load(path);
|
|
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Attribute("name").Value.Equals(Model.ResultID))
|
|
select ele;
|
|
foreach (var ele in elements)
|
|
{
|
|
if (ele.FirstAttribute.Value == Model.ResultID)
|
|
{
|
|
ele.Remove();
|
|
xe.Save(path);
|
|
break;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 日志列表
|
|
public List<ResultsModel> ResultList()
|
|
{
|
|
XElement xe = XElement.Load(path);
|
|
IEnumerable<XElement> elements = from ele in xe.Elements(nodename)
|
|
select ele;
|
|
List<ResultsModel> list = new List<ResultsModel>();
|
|
|
|
foreach (var ele in elements)
|
|
{
|
|
ResultsModel model = new ResultsModel();
|
|
model.Port = ele.Element("Port").Value;
|
|
model.Parameter = ele.Element("Parameter").Value;
|
|
model.IP = ele.Element("IP").Value;
|
|
model.Command = ele.Element("Command").Value;
|
|
model.Address = ele.Element("Address").Value;
|
|
model.ResultID = ele.FirstAttribute.Value;
|
|
list.Add(model);
|
|
}
|
|
return list;
|
|
}
|
|
#endregion
|
|
|
|
#region 根据日志查询相关信息
|
|
public ResultsModel GetResultByResultID(string ResultID)
|
|
{
|
|
XElement xe = XElement.Load(path);
|
|
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Attribute("name").Value.Equals(ResultID))
|
|
select ele;
|
|
ResultsModel model = new ResultsModel();
|
|
foreach (var ele in elements)
|
|
{
|
|
if (ele.FirstAttribute.Value == ResultID)
|
|
{
|
|
model.Port = ele.Element("Port").Value;
|
|
model.Parameter = ele.Element("Parameter").Value;
|
|
model.IP = ele.Element("IP").Value;
|
|
model.Command = ele.Element("Command").Value;
|
|
model.Address = ele.Element("Address").Value;
|
|
break;
|
|
}
|
|
|
|
}
|
|
return model;
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
}
|