Files
T-DAS/Epost.DAL/ResultsDAL.cs

139 lines
4.7 KiB
C#
Raw Normal View History

2023-01-13 15:30:20 +08:00
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
}
}