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 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 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 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 ResultList() { XElement xe = XElement.Load(path); IEnumerable elements = from ele in xe.Elements(nodename) select ele; List list = new List(); 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 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 } }