You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.0 KiB
108 lines
3.0 KiB
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> Data { get; set; } = new List<Data>();
|
|
|
|
[Display(Name = "命令")]
|
|
public List<Command> Commands { get; set; } = new List<Command>();
|
|
|
|
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;
|
|
}
|
|
}
|
|
} |