Files
DMS/DMS.Infrastructure/Repositories/VarTableRepository.cs
2025-07-19 11:11:01 +08:00

87 lines
2.9 KiB
C#

using AutoMapper;
using DMS.Core.Models;
using DMS.Infrastructure.Interfaces;
using DMS.Infrastructure.Entities;
using System.Diagnostics;
using DMS.Infrastructure.Data;
namespace DMS.Infrastructure.Repositories;
public class VarTableRepository : BaseRepository<DbVariableTable, VariableTable>
{
public VarTableRepository(IMapper mapper, ITransaction transaction)
: base(mapper, transaction)
{
}
/// <summary>
/// 添加变量表
/// </summary>
/// <param name="varTable"></param>
/// <returns>变量表的ID</returns>
public async Task<VariableTable> AddAsync(VariableTable varTable)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var addVarTabel = await Db.Insertable<DbVariableTable>(_mapper.Map<DbVariableTable>(varTable))
.ExecuteReturnEntityAsync();
stopwatch.Stop();
//NlogHelper.Info($"添加变量表 '{varTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms");
return _mapper.Map<VariableTable>(addVarTabel);
}
/// <summary>
/// 编辑变量表
/// </summary>
/// <param name="variableTable"></param>
/// <returns></returns>
public async Task<int> UpdateAsync(VariableTable variableTable)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var result = await Db.Updateable<DbVariableTable>(_mapper.Map<DbVariableTable>(variableTable))
.ExecuteCommandAsync();
stopwatch.Stop();
//NlogHelper.Info($"编辑变量表 '{variableTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms");
return result;
}
/// <summary>
/// 删除变量表
/// </summary>
/// <param name="variableTable"></param>
/// <returns></returns>
public async Task<int> DeleteAsync(VariableTable varTable)
{
if (varTable == null )
return 0;
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// 转换对象
var res= await Db.Deleteable<DbVariableTable>(_mapper.Map<DbVariableTable>(varTable))
.ExecuteCommandAsync();
stopwatch.Stop();
//NlogHelper.Info($"删除变量表 '{varTable.Name}' 耗时:{stopwatch.ElapsedMilliseconds}ms");
return res;
}
/// <summary>
/// 删除变量表支持事务
/// </summary>
/// <param name="deviceVariableTables"></param>
/// <param name="db"></param>
public async Task DeleteAsync(IEnumerable<VariableTable> deviceVariableTables)
{
if (deviceVariableTables == null || deviceVariableTables.Count() == 0)
return;
// 转换对象
var dbList = deviceVariableTables.Select(v => _mapper.Map<DbVariableTable>(v))
.ToList();
await Db.Deleteable<DbVariableTable>(dbList)
.ExecuteCommandAsync();
}
}