示例#1
0
        public ActionResult ChangeOrderedProduct(int id)
        {
            ChangeOrderViewModel changeOrderViewModel = new ChangeOrderViewModel
            {
                OrderedProduct = _orderedProductRepository.GetOrderedProductWithId(id)
            };

            return(View(changeOrderViewModel));
        }
示例#2
0
        public async Task <IActionResult> ChangeOrder([FromBody] ChangeOrderViewModel p)
        {
            UserStoryEntity story = await _context.UserStories.SingleAsync(m => m.Id == p.ItemID);

            if (story == null)
            {
                return(HttpNotFound());
            }

            //跨列表
            if (p.NewListID != p.OldListID && p.NewListID != "" && p.OldListID != "")
            {
                story.SortCode = p.NewIndex;
                story.ListID   = p.NewListID;
                //分割位置下面的向上移动
                //处理新列表。下移动新列表的分割条目后面的项目
                var downItems = _context.UserStories.Where(t => t.SortCode >= p.NewIndex && t.ListID == p.NewListID).OrderBy(t => t.SortCode).ToList();
                for (int i = 0; i < downItems.Count; i++)
                {
                    var item = downItems[i];
                    item.SortCode = i + 1 + p.NewIndex;
                }
                //处理源列表移出位置上移
                var oldListItems = _context.UserStories.Where(t => t.SortCode > p.OldIndex && t.ListID == p.OldListID).OrderBy(t => t.SortCode).ToList();
                for (int i = 0; i < oldListItems.Count; i++)
                {
                    var item = oldListItems[i];
                    item.SortCode = p.OldIndex + i;
                }
            }
            else
            {
                //同列表
                if (p.NewIndex > p.OldIndex)
                {
                    //向下移动
                    //找到在旧列表中 分割的位置上边的内容
                    var upItems = _context.UserStories.Where(t => t.SortCode <= p.NewIndex && t.SortCode > p.OldIndex && t.ListID == p.OldListID && t.SortCode != p.OldIndex).OrderBy(t => t.SortCode).ToList();

                    story.SortCode = p.NewIndex;
                    for (int i = 0; i < upItems.Count; i++)
                    {
                        var item = upItems[i];
                        item.SortCode = i + p.OldIndex;
                    }
                }
                else
                {
                    //向上移动
                    //找到在旧列表中 分割的位置下边的内容
                    var downItems = _context.UserStories.Where(t => t.SortCode >= p.NewIndex && t.SortCode < p.OldIndex && t.ListID == p.OldListID && t.SortCode != p.OldIndex).OrderBy(t => t.SortCode).ToList();

                    story.SortCode = p.NewIndex;
                    for (int i = 0; i < downItems.Count; i++)
                    {
                        var item = downItems[i];
                        item.SortCode = i + 1 + p.NewIndex;
                    }
                }
            }

            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }