public JsonActionResult <bool> AdjustIndex([FromUri] AdjustIndexParam param) { return(SafeExecute(() => { return ProductService.AdjustIndex(param); })); }
public bool AdjustIndex(AdjustIndexParam param) { if (param == null || param.ID == null) { return(false); } var pointGoods = Repository.GetByKey(param.ID); if (pointGoods == null) { return(false); } Product exchangeEntity = null; if (param.Direction == EAdjustDirection.Up) { var pre = Repository.GetQueryable().Where(t => t.Index == (pointGoods.Index - 1)).FirstOrDefault(); if (pre == null) { return(true); } else { exchangeEntity = pre; } } else if (param.Direction == EAdjustDirection.Down) { var next = Repository.GetQueryable().Where(t => t.Index == (pointGoods.Index + 1)).FirstOrDefault(); if (next == null) { return(true); } else { exchangeEntity = next; } } if (exchangeEntity != null) { var exchangeIndex = exchangeEntity.Index; exchangeEntity.Index = pointGoods.Index; pointGoods.Index = exchangeIndex; return(Repository.Update(new List <Product> { exchangeEntity, pointGoods }) == 2); } return(false); }