显示顺序排序(上或下) - 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 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)