using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using SqlSugar;
namespace IStation.DAL
{
///
/// 监测单元
///
public partial class MonitorUnit : CorpDAL_Sorter_UseStatus_TagName
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return ConfigHelper.DefaultConnectionConfig; }
}
///
/// 通过 BelongType 和 BelongID 获取
///
public List GetByBelongTypeAndBelongID(long CorpID, string BelongType, long BelongID)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable()
.Where(x => x.CorpID == CorpID && x.BelongType == BelongType && x.BelongID == BelongID).ToList();
}
}
///
/// 插入拓展
///
public long InsertEx(Entity.MonitorUnit entity, List signals)
{
if (entity == null)
return default;
if (signals == null || signals.Count() < 1)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var id = db.Insertable(entity).ExecuteReturnSnowflakeId();
if (id < 1)
{
db.RollbackTran();
return default;
}
signals.ForEach(x => x.MonitorUnitID = id);
var bol = db.Insertable(signals).ExecuteReturnSnowflakeIdList().Count() > 0;
if (!bol)
{
db.RollbackTran();
return default;
}
db.CommitTran();
return id;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 批量插入拓展
///
public bool InsertsEx(Dictionary> dict)
{
if (dict == null || dict.Count < 1)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
foreach (var kvp in dict)
{
var id = db.Insertable(kvp.Key).ExecuteReturnSnowflakeId();
if (id < 1)
{
db.RollbackTran();
return default;
}
kvp.Value.ForEach(x => x.MonitorUnitID = id);
var bol = db.Insertable(kvp.Value).ExecuteReturnSnowflakeIdList().Count() > 0;
if (!bol)
{
db.RollbackTran();
return default;
}
}
db.CommitTran();
return true;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 批量插入拓展
///
public List InsertsREx(Dictionary> dict)
{
if (dict == null || dict.Count < 1)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var list = new List();
foreach (var kvp in dict)
{
var id = db.Insertable(kvp.Key).ExecuteReturnSnowflakeId();
if (id < 1)
{
db.RollbackTran();
return default;
}
kvp.Value.ForEach(x => x.MonitorUnitID = id);
var bol = db.Insertable(kvp.Value).ExecuteReturnSnowflakeIdList().Count() > 0;
if (!bol)
{
db.RollbackTran();
return default;
}
list.Add(id);
}
db.CommitTran();
return list;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 更新拓展
///
public bool UpdateEx(Entity.MonitorUnit entity, List signals)
{
if (entity == null)
return default;
if (signals == null || signals.Count() < 1)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Updateable(entity).ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
result = db.Updateable(signals).ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
db.CommitTran();
return true;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 批量更新拓展
///
public bool UpdatesEx(Dictionary> dict)
{
if (dict == null || dict.Count < 1)
return default;
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
foreach (var kvp in dict)
{
var result = db.Updateable(kvp.Key).ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
result = db.Insertable(kvp.Value).ExecuteCommand() > 0;
if (!result)
{
db.RollbackTran();
return default;
}
}
db.CommitTran();
return true;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 通过 ID 删除
///
public override bool DeleteByID(long CorpID, long ID)
{
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Deleteable()
.Where(x => x.CorpID == CorpID && x.ID == ID)
.ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
result = db.Deleteable()
.Where(x => x.CorpID == CorpID && x.MonitorUnitID == ID)
.ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
db.CommitTran();
return true;
}
catch
{
db.RollbackTran();
throw;
}
}
}
}
}