222 lines
8.0 KiB
C#
222 lines
8.0 KiB
C#
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
|
|
}
|
|
}
|