using PMSWPF.Data.Entities; using PMSWPF.Extensions; using PMSWPF.Models; using SqlSugar; namespace PMSWPF.Data.Repositories; public class DeviceRepository { public DeviceRepository() { } /// /// 添加设备 /// /// /// /// public async Task Add(Device device) { using (var db=DbContext.GetInstance()) { var exist = await db.Queryable().Where(d => d.Name == device.Name).FirstAsync(); if (exist != null) throw new InvalidOperationException("设备名称已经存在。"); 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); var addDbDevice= await db.InsertNav(dbDevice).Include(d => d.VariableTables).ExecuteReturnEntityAsync(); return addDbDevice.CopyTo(); } } public async Task Edit(Device device) { using (var db=DbContext.GetInstance()) { return await db.Updateable(device.CopyTo()).ExecuteCommandAsync(); } } public async Task> GetAll() { using (var db = DbContext.GetInstance()) { var dlist = await db.Queryable().Includes(d => d.VariableTables,dv=>dv.Device).ToListAsync(); var devices = new List(); foreach (var dbDevice in dlist) { var device = dbDevice.CopyTo(); devices.Add(device); } return devices; } } public async Task GetById(int id) { using (var db=DbContext.GetInstance()) { return await db.Queryable().FirstAsync(p => p.Id == id); } } public async Task DeleteById(int id) { using (var db = DbContext.GetInstance()) { return await db.Deleteable(new DbDevice { Id = id }).ExecuteCommandAsync(); } } }