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
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|