using PMSWPF.Data.Entities; using PMSWPF.Excptions; using PMSWPF.Extensions; using PMSWPF.Helper; using PMSWPF.Models; namespace PMSWPF.Data.Repositories; public class DevicesRepositories : BaseRepositories { public async Task Add(Device device) { var exist = await _db.Queryable().Where(d => d.Name == device.Name).FirstAsync(); if (exist != null) throw new DbExistException("设备名称已经存在。"); var dbDevice = new DbDevice(); device.CopyTo(dbDevice); dbDevice.VariableTables = new List(); // 添加默认变量表 var dbVariableTable = new DbVariableTable(); dbVariableTable.Name = "默认变量表"; dbVariableTable.Description = "默认变量表"; dbVariableTable.ProtocolType = dbDevice.ProtocolType; dbDevice.VariableTables.Add(dbVariableTable); return await _db.InsertNav(dbDevice).Include(d => d.VariableTables).ExecuteCommandAsync(); } public async Task> GetAll() { var dlist = await _db.Queryable().Includes(d => d.VariableTables).ToListAsync(); var devices = new List(); foreach (var dbDevice in dlist) { var device = dbDevice.NewTo(); device.VariableTables = CovertHelper.ConvertList(dbDevice.VariableTables); devices.Add(device); } return devices; } public async Task GetById(int id) { return await _db.Queryable().FirstAsync(p => p.Id == id); } public async Task DeleteById(int id) { return await _db.Deleteable(new DbDevice { Id = id }).ExecuteCommandAsync(); } }