显示顺序排序(上或下) - ShowSeqDefaultUpOrDown
2017-02-21 23:08:55 访问(1611) 赞(0) 踩(0)
/// <summary>
/// 显示顺序排序(上或下) - ShowSeqDefaultUpOrDown
/// </summary>
/// <param name="oId"></param>
/// <param name="isUp"></param>
/// <param name="xdbHelper"></param>
public void ShowSeqDefaultUpOrDown
(
object oId,
bool isUp,
DBHelper xdbHelper
)
{
bool bIsCreate = true;
if (xdbHelper == null)
{
xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = xdbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
xdbHelper.OpenDBHelper();
BaseEntity entity = this.CreateBaseEntity();
ShowSeqAssist showSeqAssistValue
=
entity.GetExistShowSeqAssist();
string showSeqDataColumnName = showSeqAssistValue.showSeqDataColumnName;
if (showSeqDataColumnName == null || showSeqDataColumnName.Length == 0 || showSeqDataColumnName.Trim().Length == 0)
{
throw new Exception
(
"方法:"
+ MethodBase.GetCurrentMethod().ReflectedType.FullName
+ " "
+ MethodBase.GetCurrentMethod().ToString()
+ " 发生异常:"
+ "showSeqDataColumnName 为null或为空。"
);
}
DataRow dr = GetDataRowById(oId, xdbHelper);
int curShowSeq = int.Parse(dr[showSeqDataColumnName].ToString());
int newShowSeq = 0;
if (isUp)
{
if (curShowSeq <= 1)
{
if (bIsCreate)
xdbHelper.EndDBHelper();
return;
}
newShowSeq = curShowSeq - 1;
}
else
{
newShowSeq = curShowSeq + 1;
}
IQueryDriver iq = entity;
ISaveDriver isave = entity;
iq.ClearAllIQueryItem();
iq.AddIQueryItemWithEntityFieldInfo
(
entity.GetIDEntityFieldInfo(),
Enums.SqlLink.EmSqlLink.NotEqual,
oId
);
EntityFieldInfo infoShowSeq
=
entity.GetExistEntityFieldInfo
(
DataColumnNameSlowXCoreCommon.ShowSeq
);
SaveAssist saveAssistValue = new SaveAssist();
// 向上 //
if (curShowSeq > newShowSeq)
{
// update tableName set showseq = showseq + 1 where ShowSeq < curShowSeq and ShowSeq >= newShowSeq;
saveAssistValue.rightAddBaseSqlFunction
(
new MathSqlFunction(Enums.SqlMath.EmSqlMath.加, 1)
);
isave.AddISaveItem
(
infoShowSeq,
saveAssistValue,
infoShowSeq
);
iq.AddIQueryItemWithEntityFieldInfo
(
infoShowSeq,
Enums.SqlLink.EmSqlLink.Less,
curShowSeq
);
iq.AddIQueryItemWithEntityFieldInfo
(
infoShowSeq,
Enums.SqlLink.EmSqlLink.GreaterEqual,
newShowSeq
);
}
else
{
// update tableName set showseq = showseq - 1 where ShowSeq <= newShowSeq and ShowSeq > curShowSeq;
saveAssistValue.rightAddBaseSqlFunction
(
new MathSqlFunction(Enums.SqlMath.EmSqlMath.减, 1)
);
isave.AddISaveItem
(
infoShowSeq,
saveAssistValue,
infoShowSeq
);
iq.AddIQueryItemWithEntityFieldInfo
(
infoShowSeq,
Enums.SqlLink.EmSqlLink.Greater,
curShowSeq
);
iq.AddIQueryItemWithEntityFieldInfo
(
infoShowSeq,
Enums.SqlLink.EmSqlLink.LessEqual,
newShowSeq
);
}
if (showSeqAssistValue.configDataColumnName != null &&
showSeqAssistValue.configDataColumnName.Length > 0)
{
string[] sArray = showSeqAssistValue.configDataColumnName;
if (sArray != null)
{
foreach (string s in sArray)
{
iq.AddIQueryItemWithEntityFieldInfo
(
entity.GetExistEntityFieldInfo(s),
dr[s]
);
}
}
}
_Update
(
SlowX.Core.Enums.ClearCache.EmClearCache.不清空,
entity,
xdbHelper
);
iq.ClearAllIQueryItem();
isave.ClearAllISaveItem();
iq.AddIQueryItemWithEntityFieldInfo
(
entity.GetIDEntityFieldInfo(),
Enums.SqlLink.EmSqlLink.Equal,
oId
);
isave.AddISaveItem(infoShowSeq, newShowSeq);
_Update
(
SlowX.Core.Enums.ClearCache.EmClearCache.清空,
entity,
xdbHelper
);
if (bIsCreate)
xdbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
xdbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
xdbHelper.FinallyDBHelper();
}
}
标签:
显示顺序排序(上或下) - ShowSeqDefaultUpOrDown 


上一条:
下一条:
相关评论
发表评论