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

222 lines
8.0 KiB
C#
Raw Permalink Normal View History

2023-01-13 15:30:20 +08:00
using Epost.Common;
using Epost.Model;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Xml.Linq;
namespace Epost.DAL
{
public class LabelDAL
{
string path = System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["LabelXML"]);
string nodename = "AddressStorage";
#region
public bool CreateLabel(LabelModel 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("ControlIP", model.ControlIP),
new XElement("LabelType", model.LabelType),
new XElement("LabelAddress", model.LabelAddress));
xe.Add(controlXE);
xe.Save(path);
return true;
}
#endregion
#region
public bool UpdateLabel(LabelModel Model)
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Attribute("name").Value.Equals(Model.LabelID))
select ele;
foreach (var ele in elements)
{
if (ele.FirstAttribute.Value == Model.LabelID)
{
ele.Element("ControlIP").SetValue(Model.ControlIP);
ele.Element("LabelType").SetValue(Model.LabelType);
ele.Element("LabelAddress").SetValue(Model.LabelAddress);
xe.Save(path);
break;
}
}
return true;
}
#endregion
#region
public bool DeleteLabel(LabelModel Model)
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Attribute("name").Value.Equals(Model.LabelID))
select ele;
foreach (var ele in elements)
{
if (ele.FirstAttribute.Value == Model.LabelID)
{
ele.Remove();
xe.Save(path);
break;
}
}
return true;
}
public bool DeleteLabelByAddress(string ControlIP,string LabelAddress)
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Element("ControlIP").Value.Equals(ControlIP) && p.Element("LabelAddress").Value.Equals(LabelAddress))
select ele;
foreach (var ele in elements)
{
if (ele.Element("ControlIP").Value.Equals(ControlIP) && ele.Element("LabelAddress").Value.Equals(LabelAddress))
{
ele.Remove();
xe.Save(path);
break;
}
}
return true;
}
#endregion
#region
public List<LabelModel> LabelList()
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename)
select ele;
List<LabelModel> list = new List<LabelModel>();
foreach (var ele in elements)
{
LabelModel model = new LabelModel();
string labeltype = "";
if (ele.Element("LabelType").Value == "2")
{
labeltype = "数字标签";
}
else {
labeltype = "中文标签";
}
model.LabelAddress = ele.Element("LabelAddress").Value;
model.LabelType = labeltype;
model.ControlIP = ele.Element("ControlIP").Value;
model.LabelID = ele.FirstAttribute.Value;
list.Add(model);
}
return list;
}
public List<LabelModel> BindLabelList()
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename)
select ele;
List<LabelModel> list = new List<LabelModel>();
foreach (var ele in elements)
{
LabelModel model = new LabelModel();
model.LabelAddress = ele.Element("LabelAddress").Value;
model.LabelType = ele.Element("LabelType").Value;
model.ControlIP = ele.Element("ControlIP").Value;
model.LabelID = ele.FirstAttribute.Value;
list.Add(model);
}
return list;
}
public List<LabelModel> LabelListByIP(string ControlIP)
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Element("ControlIP").Value.Equals(ControlIP))
select ele;
List<LabelModel> list = new List<LabelModel>();
foreach (var ele in elements)
{
LabelModel model = new LabelModel();
model.LabelAddress = ele.Element("LabelAddress").Value;
model.LabelType = ele.Element("LabelType").Value;
model.ControlIP = ele.Element("ControlIP").Value;
model.LabelID = ele.FirstAttribute.Value;
list.Add(model);
}
return list;
}
#endregion
#region LabelID查询相关信息
public LabelModel GetLabelByLabelID(string LabelID)
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Attribute("name").Value.Equals(LabelID))
select ele;
LabelModel model = new LabelModel();
foreach (var ele in elements)
{
if (ele.FirstAttribute.Value == LabelID)
{
model.LabelAddress = ele.Element("LabelAddress").Value;
model.LabelType = ele.Element("LabelType").Value;
model.ControlIP = ele.Element("ControlIP").Value;
break;
}
}
return model;
}
#endregion
#region LabelID查询相关信息
public LabelModel updateLabel(string ControlIP,string LabelAddress)
{
XElement xe = XElement.Load(path);
IEnumerable<XElement> elements = from ele in xe.Elements(nodename).Where(p => p.Element("ControlIP").Value.Equals(ControlIP) && p.Element("LabelAddress").Equals(LabelAddress))
select ele;
LabelModel model = new LabelModel();
foreach (var ele in elements)
{
if (ele.Element("ControlIP").Value.Equals(ControlIP) && ele.Element("LabelAddress").Value.Equals(LabelAddress))
{
model.LabelAddress = ele.Element("LabelAddress").Value;
model.LabelType = ele.Element("LabelType").Value;
model.ControlIP = ele.Element("ControlIP").Value;
break;
}
}
return model;
}
#endregion
}
}