using Infrastructure.Domain; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; namespace Application.Domain.Entities { [Display(Name = "设备")] public class Device : BaseEntity { [Display(Name = "名称")] public string Name { get; set; } [Display(Name = "编号")] [Required] public string Number { get; set; } [Display(Name = "网关编号")] public string Gateway { get; set; } [Display(Name = "显示名称")] [Required] public string DisplayName { get; set; } [Display(Name = "标记")] public string Tag { get; set; } [Display(Name = "在线状态")] public bool IsOnline { get; set; } [Display(Name = "图标")] public string Icon { get; set; } [Display(Name = "IP")] public string Ip { get; set; } [Display(Name = "用户名")] public string UserName { get; set; } [Display(Name = "密码")] public string Password { get; set; } [Display(Name = "连接Id")] public string ConnectId { get; set; } [Display(Name = "序号")] public int DisplayOrder { get; set; } [Display(Name = "隐藏")] public bool Disabled { get; set; } [Display(Name = "产品Id")] [Required] public Guid ProductId { get; set; } [Display(Name = "节点Id")] [Required] public Guid NodeId { get; set; } [Display(Name = "产品")] public Product Product { get; set; } [Display(Name = "节点")] public Node Node { get; set; } [Display(Name = "数据")] public List Data { get; set; } = new List(); [Display(Name = "命令")] public List Commands { get; set; } = new List(); public Data GetData(string key) { return this.Data.FirstOrDefault(o => o.Key == key); } public string GetDataValue(string key) { return this.GetData(key)?.Value; } public Data CreateData(string key, object value, DeviceDataType type, string name, string unit = null, string description = null, bool hidden = false) { return new Data { Key = key, Value = Convert.ToString(value), Type = type, Name = name, Unit = unit, Description = description, Hidden = hidden }; } public bool AddorUpdateData(Data data) { var result = false; var oldData = this.Data.FirstOrDefault(o => o.Key == data.Key); if (oldData == null) { this.Data.Add(data); result = true; } else { if (oldData.Value != data.Value) { oldData.Value = data.Value; result = true; } } return result; } } }