显示顺序交换 - ShowSeqDefaultSwap

2017-02-21 23:05:41  访问(1710) 赞(0) 踩(0)


        /// <summary>
        /// 显示顺序交换 - ShowSeqDefaultSwap
        /// </summary>
        /// <param name="onePrimaryKeyValue">要交换的关键字1</param>
        /// <param name="twoPrimaryKeyValue">要交换的关键字2</param>
        /// <param name="xdbHelper">数据库链接串</param>
        public void ShowSeqDefaultSwap
            (
                object onePrimaryKeyValue,
                object twoPrimaryKeyValue,
                DBHelper xdbHelper
            )
        {
            if (onePrimaryKeyValue == twoPrimaryKeyValue)
                return;

            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();
                DataRow dr = null;
                int oneShowSeq = 0;
                int twoShowSeq = 0;

                IQueryDriver iq = entity;
                ISaveDriver isave = entity;

                string showSeqDataColumnName = entity.GetExistShowSeqDataColumnName();

                iq.AddIQueryItemWithPrimaryKey(onePrimaryKeyValue);

                dr = GetExistDataRow(entity, xdbHelper);

                oneShowSeq = int.Parse(dr[showSeqDataColumnName].ToString());

                iq.ClearAllIQueryItem();
                iq.AddIQueryItemWithPrimaryKey(twoPrimaryKeyValue);

                dr = GetExistDataRow(entity, xdbHelper);

                twoShowSeq = int.Parse(dr[showSeqDataColumnName].ToString());

                if (twoShowSeq != oneShowSeq)
                {
                    entity.ClearAllIQueryItem();
                    entity.ClearAllISaveItem();

                    isave.AddISaveItemByName(showSeqDataColumnName, twoShowSeq);
                    iq.AddIQueryItemWithPrimaryKey(onePrimaryKeyValue);

                    _Update(entity, xdbHelper);

                    iq.ClearAllIQueryItem();
                    isave.ClearAllISaveItem();

                    isave.AddISaveItemByName(showSeqDataColumnName, oneShowSeq);
                    iq.AddIQueryItemWithPrimaryKey(twoPrimaryKeyValue);

                    _Update(entity, xdbHelper);
                }

                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }

        }

        /// <summary>
        /// 显示顺序交换 - ShowSeqDefaultSwap
        /// </summary>
        /// <param name="onePrimaryKeyValue">要交换的关键字1</param>
        /// <param name="oneShowSeq">要交换的显示顺序值</param>
        /// <param name="twoPrimaryKeyValue">要交换的关键字2</param>
        /// <param name="twoShowSeq">要交换的显示顺序值</param>
        /// <param name="xdbHelper">数据库链接串</param>
        public void ShowSeqDefaultSwap
            (
                object onePrimaryKeyValue,
                int oneShowSeq,
                object twoPrimaryKeyValue,
                int twoShowSeq,
                DBHelper xdbHelper
            )
        {
            if (onePrimaryKeyValue == twoPrimaryKeyValue)
                return;

            if (oneShowSeq == twoShowSeq)
                return;

            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();

                IQueryDriver iq = entity;
                ISaveDriver isave = entity;

                string showSeqDataColumnName
                    =
                    entity.GetExistShowSeqDataColumnName();


                iq.ClearAllIQueryItem();
                isave.ClearAllISaveItem();

                isave.AddISaveItemByName(showSeqDataColumnName, twoShowSeq);
                iq.AddIQueryItemWithPrimaryKey(onePrimaryKeyValue);

                _Update(entity, xdbHelper);

                iq.ClearAllIQueryItem();
                isave.ClearAllISaveItem();

                isave.AddISaveItemByName(showSeqDataColumnName, oneShowSeq);
                iq.AddIQueryItemWithPrimaryKey(twoPrimaryKeyValue);

                _Update(entity, xdbHelper);


                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }

        }


        /// <summary>
        /// 显示顺序交换 - ShowSeqSwap
        /// </summary>
        /// <param name="showSeqDataColumnName"></param>
        /// <param name="onePrimaryKeyValue"></param>
        /// <param name="oneShowSeq"></param>
        /// <param name="twoPrimaryKeyValue"></param>
        /// <param name="twoShowSeq"></param>
        /// <param name="xdbHelper">数据库链接串</param>
        public void ShowSeqSwap
            (
                string showSeqDataColumnName,
                object onePrimaryKeyValue,
                int oneShowSeq,
                object twoPrimaryKeyValue,
                int twoShowSeq,
                DBHelper xdbHelper
            )
        {
            if (onePrimaryKeyValue == twoPrimaryKeyValue)
                return;

            if (oneShowSeq == twoShowSeq)
                return;

            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();

                IQueryDriver iq = entity;
                ISaveDriver isave = entity;


                iq.ClearAllIQueryItem();
                isave.ClearAllISaveItem();

                isave.AddISaveItemByName(showSeqDataColumnName, twoShowSeq);
                iq.AddIQueryItemWithPrimaryKey(onePrimaryKeyValue);

                _Update(SlowX.Core.Enums.ClearCache.EmClearCache.不清空, entity, xdbHelper);

                iq.ClearAllIQueryItem();
                isave.ClearAllISaveItem();

                isave.AddISaveItemByName(showSeqDataColumnName, oneShowSeq);
                iq.AddIQueryItemWithPrimaryKey(twoPrimaryKeyValue);

                _Update(entity, xdbHelper);


                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }
        }

        /// <summary>
        /// 获得显示顺序最大值
        /// </summary>
        /// <param name="listShowSeqAssistParams"></param>
        /// <param name="xdbHelper">数据库链接串</param>
        /// <returns></returns>
        public int ShowSeqDefaultGetMax
           (
               List<ShowSeqAssistParams> listShowSeqAssistParams,
               DBHelper xdbHelper
           )
        {
            BaseEntity entity = CreateBaseEntity();

            string showSeqDataColumnName
                = entity.GetExistShowSeqDataColumnName();

            int theResult = 0;

            bool bIsCreate = true;

            if (xdbHelper == null)
            {
                xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
            }
            else
            {
                // 没有打开链接 //
                bIsCreate = xdbHelper.IsNotOpen();
            }

            try
            {
                if (bIsCreate)
                    xdbHelper.OpenDBHelper();

                if (listShowSeqAssistParams != null)
                {
                    EntityFieldInfo info = null;

                    foreach (ShowSeqAssistParams p in listShowSeqAssistParams)
                    {
                        if (p == null)
                            continue;

                        info = entity.GetExistEntityFieldInfo(p.dataColumnName);
                        entity.i_iqueryDriver.AddIQueryItemWithEntityFieldInfo(info, p.theValue);
                    }
                }

                entity.maxEntityFieldInfo = entity.GetExistEntityFieldInfo
                    (
                        showSeqDataColumnName
                    );

                object oResult = _Max(entity, xdbHelper);

                if (oResult == null || oResult.ToString().Length == 0)
                    theResult = 0;
                else
                    theResult = Convert.ToInt32(oResult);

                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }

            return theResult;
        }


标签:显示顺序交换 - ShowSeqDefaultSwap 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

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