千问写完触发器功能,错误未修复
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
using AutoMapper;
|
||||
using DMS.Core.Interfaces;
|
||||
using DMS.Core.Interfaces.Repositories;
|
||||
using DMS.Core.Interfaces.Repositories.Triggers; // 引入新的接口
|
||||
using DMS.Infrastructure.Data;
|
||||
using DMS.Infrastructure.Repositories.Triggers; // 引入实现类所在的命名空间
|
||||
using SqlSugar;
|
||||
|
||||
namespace DMS.Infrastructure.Repositories;
|
||||
@@ -28,6 +30,7 @@ public class RepositoryManager : IRepositoryManager
|
||||
/// <param name="variableHistories">变量历史仓储实例。</param>
|
||||
/// <param name="users">用户仓储实例。</param>
|
||||
/// <param name="nlogs">Nlog日志仓储实例。</param>
|
||||
/// <param name="triggers">触发器仓储实例。</param>
|
||||
public RepositoryManager( SqlSugarDbContext dbContext,
|
||||
IInitializeRepository initializeRepository,
|
||||
IDeviceRepository devices,
|
||||
@@ -38,7 +41,8 @@ public class RepositoryManager : IRepositoryManager
|
||||
IMenuRepository menus,
|
||||
IVariableHistoryRepository variableHistories,
|
||||
IUserRepository users,
|
||||
INlogRepository nlogs)
|
||||
INlogRepository nlogs,
|
||||
ITriggerRepository triggers) // 新增参数
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
InitializeRepository = initializeRepository;
|
||||
@@ -51,6 +55,7 @@ public class RepositoryManager : IRepositoryManager
|
||||
VariableHistories = variableHistories;
|
||||
Users = users;
|
||||
Nlogs = nlogs;
|
||||
Triggers = triggers; // 赋值
|
||||
|
||||
_db = dbContext.GetInstance();
|
||||
}
|
||||
@@ -100,6 +105,10 @@ public class RepositoryManager : IRepositoryManager
|
||||
/// </summary>
|
||||
public INlogRepository Nlogs { get; set; }
|
||||
/// <summary>
|
||||
/// 获取触发器仓储实例。
|
||||
/// </summary>
|
||||
public ITriggerRepository Triggers { get; set; }
|
||||
/// <summary>
|
||||
/// 获取初始化仓储实例。
|
||||
/// </summary>
|
||||
public IInitializeRepository InitializeRepository { get; set; }
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using DMS.Core.Models.Triggers;
|
||||
using SqlSugar;
|
||||
|
||||
namespace DMS.Infrastructure.Repositories.Triggers.Impl
|
||||
{
|
||||
/// <summary>
|
||||
/// 基于 SqlSugar 的触发器仓储实现
|
||||
/// </summary>
|
||||
public class SqlSugarTriggerRepository : ITriggerRepository
|
||||
{
|
||||
private readonly ISqlSugarClient _db;
|
||||
|
||||
public SqlSugarTriggerRepository(ISqlSugarClient db)
|
||||
{
|
||||
_db = db ?? throw new ArgumentNullException(nameof(db));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有触发器定义
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TriggerDefinition>> GetAllAsync()
|
||||
{
|
||||
return await _db.Queryable<TriggerDefinition>().ToListAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据 ID 获取触发器定义
|
||||
/// </summary>
|
||||
public async Task<TriggerDefinition?> GetByIdAsync(Guid id)
|
||||
{
|
||||
return await _db.Queryable<TriggerDefinition>().InSingleAsync(id);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加一个新的触发器定义
|
||||
/// </summary>
|
||||
public async Task<TriggerDefinition> AddAsync(TriggerDefinition trigger)
|
||||
{
|
||||
var insertedId = await _db.Insertable(trigger).ExecuteReturnSnowflakeIdAsync();
|
||||
trigger.Id = insertedId;
|
||||
return trigger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新一个已存在的触发器定义
|
||||
/// </summary>
|
||||
public async Task<TriggerDefinition?> UpdateAsync(TriggerDefinition trigger)
|
||||
{
|
||||
var rowsAffected = await _db.Updateable(trigger).ExecuteCommandAsync();
|
||||
return rowsAffected > 0 ? trigger : null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除一个触发器定义
|
||||
/// </summary>
|
||||
public async Task<bool> DeleteAsync(Guid id)
|
||||
{
|
||||
var rowsAffected = await _db.Deleteable<TriggerDefinition>().In(id).ExecuteCommandAsync();
|
||||
return rowsAffected > 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取与指定变量关联的所有触发器定义
|
||||
/// </summary>
|
||||
public async Task<IEnumerable<TriggerDefinition>> GetByVariableIdAsync(Guid variableId)
|
||||
{
|
||||
return await _db.Queryable<TriggerDefinition>()
|
||||
.Where(t => t.VariableId == variableId)
|
||||
.ToListAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user