using PMSWPF.Data.Entities; using SqlSugar; using System.Collections.Generic; using System.Threading.Tasks; namespace PMSWPF.Data.Repositories; /// /// 变量与MQTT服务器别名关联的数据仓库。 /// public class VariableMqttAliasRepository { /// /// 根据变量ID和MQTT服务器ID获取别名。 /// /// 变量数据ID。 /// MQTT服务器ID。 /// DbVariableMqtt实体,如果不存在则为null。 public async Task GetAliasByVariableAndMqtt(int variableDataId, int mqttId) { using (var db = DbContext.GetInstance()) { return await GetAliasByVariableAndMqtt(variableDataId, mqttId, db); } } /// /// 根据变量ID和MQTT服务器ID获取别名。 /// /// 变量数据ID。 /// MQTT服务器ID。 /// SqlSugarClient实例。 /// DbVariableMqtt实体,如果不存在则为null。 public async Task GetAliasByVariableAndMqtt(int variableDataId, int mqttId, SqlSugarClient db) { return await db.Queryable() .Where(it => it.VariableId == variableDataId && it.MqttId == mqttId) .FirstAsync(); } /// /// 批量添加变量与MQTT服务器的关联。 /// /// 要添加的DbVariableMqtt实体列表。 /// 成功添加的数量。 public async Task AddManyAsync(IEnumerable entities) { using (var db = DbContext.GetInstance()) { return await AddManyAsync(entities, db); } } /// /// 批量添加变量与MQTT服务器的关联。 /// /// 要添加的DbVariableMqtt实体列表。 /// SqlSugarClient实例。 /// 成功添加的数量。 public async Task AddManyAsync(IEnumerable entities, SqlSugarClient db) { return await db.Insertable(entities).ExecuteCommandAsync(); } /// /// 更新变量与MQTT服务器的别名。 /// /// 变量数据ID。 /// MQTT服务器ID。 /// 新的别名。 /// 受影响的行数。 public async Task UpdateAliasAsync(int variableDataId, int mqttId, string newAlias) { using (var db = DbContext.GetInstance()) { return await UpdateAliasAsync(variableDataId, mqttId, newAlias, db); } } /// /// 更新变量与MQTT服务器的别名。 /// /// 变量数据ID。 /// MQTT服务器ID。 /// 新的别名。 /// SqlSugarClient实例。 /// 受影响的行数。 public async Task UpdateAliasAsync(int variableDataId, int mqttId, string newAlias, SqlSugarClient db) { return await db.Updateable() .SetColumns(it => it.MqttAlias == newAlias) .Where(it => it.VariableId == variableDataId && it.MqttId == mqttId) .ExecuteCommandAsync(); } /// /// 删除变量与MQTT服务器的关联。 /// /// 变量数据ID。 /// MQTT服务器ID。 /// 受影响的行数。 public async Task DeleteAsync(int variableDataId, int mqttId) { using (var db = DbContext.GetInstance()) { return await DeleteAsync(variableDataId, mqttId, db); } } /// /// 删除变量与MQTT服务器的关联。 /// /// 变量数据ID。 /// MQTT服务器ID。 /// SqlSugarClient实例。 /// 受影响的行数。 public async Task DeleteAsync(int variableDataId, int mqttId, SqlSugarClient db) { return await db.Deleteable() .Where(it => it.VariableId == variableDataId && it.MqttId == mqttId) .ExecuteCommandAsync(); } }