public void MoveItem(short mode, int limitid) { var obj = GetLimit(limitid); var list = LimitRepository.GetQuery(o => o.PLimitId == obj.PLimitId).OrderBy(o => o.SortOrder).ToList(); switch (mode) { case 2: //下移 var obj1 = list.LastOrDefault(); if (obj.Id != obj1.Id) { Entity.SysLimits 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; LimitRepository.SaveChanges(); } } break; default: //上移 var obj2 = list.FirstOrDefault(); if (obj.Id != obj2.Id) { Entity.SysLimits 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; LimitRepository.SaveChanges(); } } break; } }
public OpResult SaveOrUpdate(Entity.SysLimits obj) { if (obj.Id == 0) { obj.LimitId = LimitRepository.GetMaxInt(o => (int?)o.LimitId); obj.SortOrder = obj.LimitId; LimitRepository.Add(obj, false); } else { var limit = LimitRepository.Get(obj.Id); limit.Title = obj.Title; limit.Status = obj.Status; } LimitRepository.SaveChanges(); return(OpResult.Success()); }