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.VariableDataId == 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.VariableDataId == 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.VariableDataId == variableDataId && it.MqttId == mqttId)
.ExecuteCommandAsync();
}
}