将NlogHelper,和NotificationHelper,改为服务的方式注入使用

This commit is contained in:
2025-09-04 17:29:24 +08:00
parent c45287fae0
commit bb650e2682
35 changed files with 307 additions and 474 deletions

View File

@@ -12,32 +12,44 @@ namespace DMS.Infrastructure.Repositories;
/// </summary>
public class RepositoryManager : IRepositoryManager
{
private readonly SqlSugarClient _db;
private readonly IMapper _mapper;
private readonly SqlSugarDbContext _dbContext;
private readonly SqlSugarClient _db;
/// <summary>
/// 构造函数,注入 AutoMapper 和 SqlSugarDbContext
/// 在此初始化所有具体的仓储实例。
/// 构造函数,注入所有仓储实例
/// </summary>
/// <param name="mapper">AutoMapper 实例,用于实体模型和数据库模型之间的映射。</param>
/// <param name="dbContext">SqlSugar 数据库上下文,用于数据库操作。</param>
public RepositoryManager(IMapper mapper, SqlSugarDbContext dbContext)
/// <param name="initializeRepository">初始化仓储实例。</param>
/// <param name="devices">设备仓储实例。</param>
/// <param name="variableTables">变量表仓储实例。</param>
/// <param name="variables">变量仓储实例。</param>
/// <param name="mqttServers">MQTT服务器仓储实例。</param>
/// <param name="variableMqttAliases">变量MQTT别名仓储实例。</param>
/// <param name="menus">菜单仓储实例。</param>
/// <param name="variableHistories">变量历史仓储实例。</param>
/// <param name="users">用户仓储实例。</param>
public RepositoryManager( SqlSugarDbContext dbContext,
IInitializeRepository initializeRepository,
IDeviceRepository devices,
IVariableTableRepository variableTables,
IVariableRepository variables,
IMqttServerRepository mqttServers,
IVariableMqttAliasRepository variableMqttAliases,
IMenuRepository menus,
IVariableHistoryRepository variableHistories,
IUserRepository users)
{
_mapper = mapper;
_dbContext = dbContext;
_db = dbContext.GetInstance();
// 初始化各个仓储实例
InitializeRepository=new InitializeRepository(dbContext);
Devices = new DeviceRepository(mapper, dbContext);
VariableTables = new VariableTableRepository(mapper, dbContext);
Variables = new VariableRepository(mapper, dbContext);
MqttServers = new MqttServerRepository(mapper, dbContext);
VariableMqttAliases = new VariableMqttAliasRepository(mapper, dbContext);
Menus = new MenuRepository(mapper, dbContext);
VariableHistories = new VariableHistoryRepository(mapper, dbContext);
Users = new UserRepository(mapper, dbContext);
InitializeRepository = initializeRepository;
Devices = devices;
VariableTables = variableTables;
Variables = variables;
MqttServers = mqttServers;
VariableMqttAliases = variableMqttAliases;
Menus = menus;
VariableHistories = variableHistories;
Users = users;
_db = dbContext.GetInstance();
}
/// <summary>
@@ -45,7 +57,7 @@ public class RepositoryManager : IRepositoryManager
/// </summary>
public void Dispose()
{
_db.Close();
_db?.Close();
}
/// <summary>
@@ -89,17 +101,29 @@ public class RepositoryManager : IRepositoryManager
/// 异步开始数据库事务。
/// </summary>
/// <returns>表示异步操作的任务。</returns>
public async Task BeginTranAsync() => await _db.BeginTranAsync();
public async Task BeginTranAsync()
{
if (_db != null)
await _db.BeginTranAsync();
}
/// <summary>
/// 异步提交数据库事务。
/// </summary>
/// <returns>表示异步操作的任务。</returns>
public async Task CommitAsync() => await _db.CommitTranAsync();
public async Task CommitAsync()
{
if (_db != null)
await _db.CommitTranAsync();
}
/// <summary>
/// 异步回滚数据库事务。
/// </summary>
/// <returns>表示异步操作的任务。</returns>
public async Task RollbackAsync() => await _db.RollbackTranAsync();
public async Task RollbackAsync()
{
if (_db != null)
await _db.RollbackTranAsync();
}
}