using SqlSugar; using System.Diagnostics; using AutoMapper; using DMS.Infrastructure.Entities; using DMS.Core.Helper; using DMS.Core.Models; using DMS.Infrastructure.Data; namespace DMS.Infrastructure.Repositories; public class VarTableRepository : IVarTableRepository { private readonly IMapper _mapper; public VarTableRepository(IMapper mapper) { _mapper = mapper; } /// /// 添加变量表 /// /// /// 变量表的ID public async Task AddAsync(VariableTable varTable) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); using (var db = DbContext.GetInstance()) { var addVarTable = await AddAsync(varTable, db); stopwatch.Stop(); NlogHelper.Info($"添加变量表 '{varTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms"); return addVarTable; } } /// /// 添加变量表支持事务 /// /// /// /// public async Task AddAsync(VariableTable variableTable, SqlSugarClient db) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var addVarTabel = await db.Insertable(_mapper.Map(variableTable)) .ExecuteReturnEntityAsync(); stopwatch.Stop(); NlogHelper.Info($"添加设备 '{addVarTabel.Name}' 的默认变量表耗时:{stopwatch.ElapsedMilliseconds}ms"); return _mapper.Map(addVarTabel); } /// /// 编辑变量表 /// /// /// public async Task UpdateAsync(VariableTable variableTable) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); using var db = DbContext.GetInstance(); var result = await UpdateAsync(variableTable, db); stopwatch.Stop(); NlogHelper.Info($"编辑变量表 '{variableTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms"); return result; } /// /// 编辑变量表,支持事务 /// /// /// public async Task UpdateAsync(VariableTable variableTable, SqlSugarClient db) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var result = await db.Updateable(_mapper.Map(variableTable)) .ExecuteCommandAsync(); stopwatch.Stop(); NlogHelper.Info($"编辑变量表 '{variableTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms"); return result; } /// /// 删除变量表 /// /// /// public async Task DeleteAsync(VariableTable variableTable) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); using (var db = DbContext.GetInstance()) { var result = await DeleteAsync(variableTable, db); stopwatch.Stop(); NlogHelper.Info($"删除变量表 '{variableTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms"); return result; } } /// /// 删除变量表支持事务 /// /// /// public async Task DeleteAsync(VariableTable varTable, SqlSugarClient db) { if (varTable == null ) return 0; Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 转换对象 var res= await db.Deleteable(_mapper.Map(varTable)) .ExecuteCommandAsync(); stopwatch.Stop(); NlogHelper.Info($"删除变量表 '{varTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms"); return res; } /// /// 删除变量表支持事务 /// /// /// public async Task DeleteAsync(IEnumerable deviceVariableTables, SqlSugarClient db) { if (deviceVariableTables == null || deviceVariableTables.Count() == 0) return; // 转换对象 var dbList = deviceVariableTables.Select(v => _mapper.Map(v)) .ToList(); await db.Deleteable(dbList) .ExecuteCommandAsync(); } }