using Yw.DAL.PostgreSql;
namespace HStation.DAL.PostgreSql
{
///
///
///
public partial class PumpPartMain : BaseDAL_Sorter, IPumpPartMain
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; }
}
//插入拓展
public long InsertsEx(Entity.PumpPartMain part, List pumpPropContents, Entity.PumpMainAndPartMap partmap)
{
if (part == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Insertable(part).ExecuteReturnSnowflakeId();
if (result < 0)
{
db.RollbackTran();
return default;
}
else
{
if (partmap != null)
{
partmap.PumpPartID = result;
var mainandpartmap = db.Insertable(partmap).ExecuteReturnSnowflakeId();
if (mainandpartmap < 0)
{
db.RollbackTran();
return default;
}
else
{
if (pumpPropContents != null)
{
foreach (var item in pumpPropContents)
{
item.PartID = result;
}
var content = db.Insertable(pumpPropContents).ExecuteReturnSnowflakeId();
if (content < 0)
{
db.RollbackTran();
return default;
}
}
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
//编辑拓展
public bool UpdateEx(Entity.PumpPartMain part, List pumpPropContents)
{
if (part == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Updateable(part).ExecuteCommandHasChange();
if (!result)
{
db.RollbackTran();
return default;
}
else
{
if (pumpPropContents != null)
{
var propresult = db.Updateable(pumpPropContents).ExecuteCommandHasChange();
if (!propresult)
{
db.RollbackTran();
return default;
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
//删除拓展 (删除产品表及属性表)
public bool DeleteEx(Entity.PumpPartMain part, List pumpPropContents)
{
if (part == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var result = db.Deleteable(part).ExecuteCommand() > 0;
if (!result)
{
db.RollbackTran();
return default;
}
else
{
if (pumpPropContents != null)
{
var propresult = db.Deleteable(pumpPropContents).ExecuteCommand() > 0;
if (!propresult)
{
db.RollbackTran();
return default;
}
}
}
db.CommitTran();
return result;
}
catch (Exception ex)
{
db.RollbackTran();
throw;
}
}
}
}
}