Пример #1
0
 public int SortAdd(KnowledgeSort entity)
 {
     entity.Kns_CrtTime = DateTime.Now;
     //如果没有排序号,则自动计算
     if (entity.Kns_Tax < 1)
     {
         object obj = Gateway.Default.Max <KnowledgeSort>(KnowledgeSort._.Kns_Tax, KnowledgeSort._.Cou_ID == entity.Cou_ID && KnowledgeSort._.Kns_PID == entity.Kns_PID);
         entity.Kns_Tax = obj is int?(int)obj + 1 : 0;
     }
     Song.Entities.Organization org = Business.Do <IOrganization>().OrganCurrent();
     if (org != null)
     {
         entity.Org_ID   = org.Org_ID;
         entity.Org_Name = org.Org_Name;
     }
     return(Gateway.Default.Save <KnowledgeSort>(entity));
 }
Пример #2
0
        public void SortSave(KnowledgeSort entity)
        {
            using (DbTrans tran = Gateway.Default.BeginTrans())
            {
                try
                {
                    tran.Save <KnowledgeSort>(entity);
                    tran.Update <Knowledge>(new Field[] { Knowledge._.Kns_Name }, new object[] { entity.Kns_Name }, Knowledge._.Kns_ID == entity.Kns_ID);

                    tran.Commit();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
                finally
                {
                    tran.Close();
                }
            }
        }
Пример #3
0
        /// <summary>
        /// 将当前项目向下移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动;
        /// </summary>
        /// <param name="id"></param>
        /// <returns>如果已经处于顶端,则返回false;移动成功,返回true</returns>
        public bool SortRemoveDown(int id)
        {
            //当前对象
            KnowledgeSort current = Gateway.Default.From <KnowledgeSort>().Where(KnowledgeSort._.Kns_ID == id).ToFirst <KnowledgeSort>();
            int           tax     = current.Kns_Tax;
            //下一个对象,即弟弟对象;弟弟不存则直接返回false;
            KnowledgeSort next = Gateway.Default.From <KnowledgeSort>()
                                 .Where(KnowledgeSort._.Kns_Tax > tax && KnowledgeSort._.Kns_PID == current.Kns_PID && KnowledgeSort._.Cou_ID == current.Cou_ID)
                                 .OrderBy(KnowledgeSort._.Kns_Tax.Asc).ToFirst <KnowledgeSort>();

            if (next == null)
            {
                return(false);
            }
            //交换排序号
            current.Kns_Tax = next.Kns_Tax;
            next.Kns_Tax    = next.Kns_Tax == tax ? tax + 1 : tax;
            using (DbTrans tran = Gateway.Default.BeginTrans())
            {
                try
                {
                    tran.Save <KnowledgeSort>(current);
                    tran.Save <KnowledgeSort>(next);
                    tran.Commit();
                    return(true);
                }
                catch
                {
                    tran.Rollback();
                    throw;
                }
                finally
                {
                    tran.Close();
                }
            }
        }
Пример #4
0
        /// <summary>
        /// 将当前项目向上移动;仅在当前对象的同层移动,即同一父节点下的对象这前移动;
        /// </summary>
        /// <param name="id"></param>
        /// <returns>如果已经处于顶端,则返回false;移动成功,返回true</returns>
        public bool SortRemoveUp(int id)
        {
            //当前对象
            KnowledgeSort current = Gateway.Default.From <KnowledgeSort>().Where(KnowledgeSort._.Kns_ID == id).ToFirst <KnowledgeSort>();
            int           tax     = current.Kns_Tax;
            //上一个对象,即兄长对象;兄长不存则直接返回false;
            KnowledgeSort prev = Gateway.Default.From <KnowledgeSort>()
                                 .Where(KnowledgeSort._.Kns_Tax < tax && KnowledgeSort._.Kns_PID == current.Kns_PID && KnowledgeSort._.Cou_ID == current.Cou_ID)
                                 .OrderBy(KnowledgeSort._.Kns_Tax.Desc).ToFirst <KnowledgeSort>();

            if (prev == null)
            {
                return(false);
            }
            //交换排序号
            current.Kns_Tax = prev.Kns_Tax;
            prev.Kns_Tax    = prev.Kns_Tax == tax ? tax - 1 : tax;
            using (DbTrans tran = Gateway.Default.BeginTrans())
            {
                try
                {
                    tran.Save <KnowledgeSort>(current);
                    tran.Save <KnowledgeSort>(prev);
                    tran.Commit();
                    return(true);
                }
                catch
                {
                    tran.Rollback();
                    throw;
                }
                finally
                {
                    tran.Close();
                }
            }
        }