using Yw.DAL.PostgreSql;
namespace HStation.DAL.PostgreSql
{
///
///
///
public partial class XhsProject : BaseDAL_Paras_Flags_TagName_TreeSorter, IXhsProject
{
///
///
///
public override ConnectionConfig ConnectionConfig
{
get { return Xhs.ConfigHelper.PostgreSqlConnectionConfig; }
}
///
/// 插入拓展
///
public long InsertEx(Entity.XhsProject entityProject, List entityProjectSiteList)
{
if (entityProject == null)
{
return default;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
if (entityProject.ID < 1)
{
entityProject.ID = db.Insertable(entityProject).ExecuteReturnSnowflakeId();
if (entityProject.ID < 1)
{
db.RollbackTran();
return default;
}
}
else
{
var bol = db.Insertable(entityProject).ExecuteCommand() > 0;
if (!bol)
{
db.RollbackTran();
return default;
}
}
if (entityProjectSiteList != null && entityProjectSiteList.Count > 0)
{
foreach (var entityProjectSite in entityProjectSiteList)
{
entityProjectSite.ProjectID = entityProject.ID;
if (entityProjectSite.ID < 1)
{
entityProjectSite.ID = db.Insertable(entityProjectSite).ExecuteReturnSnowflakeId();
if (entityProjectSite.ID < 1)
{
db.RollbackTran();
return default;
}
}
else
{
var bol = db.Insertable(entityProjectSite).ExecuteCommand() >= 0;
if (!bol)
{
db.RollbackTran();
return default;
}
}
}
}
return entityProject.ID;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 编辑拓展
///
public bool UpdateEx(Entity.XhsProject entityProject, List entityProjectSiteList)
{
if (entityProject == null)
{
return false;
}
if (entityProject.ID < 1)
{
return false;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var bol = db.Updateable(entityProject).ExecuteCommandHasChange();
if (!bol)
{
db.RollbackTran();
return false;
}
if (entityProjectSiteList != null && entityProjectSiteList.Count > 0)
{
foreach (var entityProjectSite in entityProjectSiteList)
{
entityProjectSite.ProjectID = entityProject.ID;
if (entityProjectSite.ID < 1)
{
db.RollbackTran();
return false;
}
bol = db.Updateable(entityProjectSite).ExecuteCommandHasChange();
if (!bol)
{
db.RollbackTran();
return false;
}
}
}
return true;
}
catch
{
db.RollbackTran();
throw;
}
}
}
///
/// 更新开始时间
///
public virtual bool UpdateStartTime(long ID, DateTime StartTime)
{
using (SqlSugarClient db = new(ConnectionConfig))
{
return db.Updateable()
.SetColumns(x => x.StartTime == StartTime)
.Where(x => x.ID == ID)
.ExecuteCommand() > 0;
}
}
///
/// 更新结束时间
///
public virtual bool UpdateEndTime(long ID, DateTime EndTime)
{
using (SqlSugarClient db = new(ConnectionConfig))
{
return db.Updateable()
.SetColumns(x => x.EndTime == EndTime)
.Where(x => x.ID == ID)
.ExecuteCommand() > 0;
}
}
///
/// 通过 ID 删除 (拓展)
///
public bool DeleteExByID(long ID)
{
if (ID < 1)
{
return false;
}
using (var db = new SqlSugarClient(ConnectionConfig))
{
try
{
db.BeginTran();
var bol = db.Deleteable().Where(x => x.ID == ID).ExecuteCommandHasChange();
if (!bol)
{
db.RollbackTran();
return false;
}
db.Deleteable().Where(x => x.ProjectID == ID).ExecuteCommandHasChange();
db.CommitTran();
return true;
}
catch
{
db.RollbackTran();
throw;
}
}
}
}
}