public void MoveItem(short mode, int sn)
        {
            var obj  = DictRepository.Find(o => o.DicSN == sn);
            var list = DictRepository.GetQuery(o => o.DicPSN == obj.DicPSN).OrderBy(o => o.SortOrder).ToList();

            switch (mode)
            {
            case 2:    //下移
                var obj1 = list.LastOrDefault();
                if (obj.Id != obj1.Id)
                {
                    Entity.SysDataDictionary next = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            next = list[i + 1]; break;
                        }
                    }
                    if (next != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = next.SortOrder;
                        next.SortOrder = sort;
                        DictRepository.SaveChanges();
                    }
                }
                break;

            default:    //上移
                var obj2 = list.FirstOrDefault();
                if (obj.Id != obj2.Id)
                {
                    Entity.SysDataDictionary prev = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            prev = list[i - 1]; break;
                        }
                    }
                    if (prev != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = prev.SortOrder;
                        prev.SortOrder = sort;
                        DictRepository.SaveChanges();
                    }
                }
                break;
            }
        }
 public OpResult Save(Entity.SysDataDictionary obj)
 {
     if (obj.Id == 0)
     {
         obj.DicSN     = DictRepository.GetMaxInt(o => o.DicSN);
         obj.SortOrder = obj.DicSN;
         obj.CreateDT  = DateTime.Now;
         obj.CreateUID = CurrentUser.UID;
         DictRepository.Add(obj, false);
     }
     else
     {
         var dict = DictRepository.Get(obj.Id);
         dict.Title  = obj.Title;
         dict.Status = obj.Status;
         if (dict.HasChild != obj.HasChild && DictRepository.IsExists(o => o.DicPSN == obj.DicSN))
         {
             return(OpResult.Fail("存在下级不允许修改!"));
         }
         dict.HasChild = obj.HasChild;
     }
     DictRepository.SaveChanges();
     return(OpResult.Success());
 }