예제 #1
0
        public async Task <IActionResult> Edit(string listID, string itemID)
        {
            if (string.IsNullOrEmpty(itemID))
            {
                return(HttpNotFound());
            }
            UserStoryEntity story = await _context.UserStories.SingleAsync(m => m.Id == itemID);

            if (story == null)
            {
                return(HttpNotFound());
            }
            UserStoryViewModel usvm = mapper.Map <UserStoryViewModel>(story);

            var assigntoSelectList = _context.Set <UserEntity>().ToList().Select(a => new SelectListItem
            {
                Text  = a.NickName,
                Value = a.Id
            });

            usvm.AssignToList = assigntoSelectList;

            var selectList = StoryStatusList.GetStatusList(_context).OrderBy(t => t.SortCode).Select(a => new SelectListItem
            {
                Text  = a.Text,
                Value = a.Code
            });

            usvm.StatusList = selectList;
            return(PartialView(usvm));
        }
예제 #2
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> Create(UserStoryViewModel userStoryViewModel)
        {
            if (ModelState.IsValid)
            {
                //mapping
                UserStoryEntity usNew = mapper.Map <UserStoryEntity>(userStoryViewModel);
                usNew.Id         = Guid.NewGuid().ToString("N");
                usNew.StatusCode = "Unstarted";
                UserEntity currentUser = _context.Set <UserEntity>().SingleOrDefault(t => t.Account == User.Identity.Name);
                usNew.CreatorUserId = currentUser.Id;
                usNew.CreateTime    = DateTime.Now;
                usNew.SortCode      = _context.UserStories.Max(t => t.SortCode) + 1;
                _context.UserStories.Add(usNew);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View("OK"));
        }
예제 #3
0
        public async Task <IActionResult> Move([FromBody] StoryMoveViewModel p)
        {
            if (p.ItemId == null)
            {
                return(HttpNotFound());
            }

            UserStoryEntity us = await _context.UserStories.SingleAsync(m => m.Id == p.ItemId);

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

            us.StatusCode = p.TargetStatus;
            await _context.SaveChangesAsync();

            return(Json(true));
            //return View();
        }
예제 #4
0
        public async Task <IActionResult> Edit(UserStoryViewModel vm)
        {
            if (vm.ID == null)
            {
                return(HttpNotFound());
            }

            UserStoryEntity story = await _context.UserStories.SingleAsync(m => m.Id == vm.ID);

            if (story == null)
            {
                return(HttpNotFound());
            }
            story.Content      = vm.Content;
            story.ItemTypeCode = vm.ItemTypeCode;
            story.Point        = vm.Point;
            story.StatusCode   = vm.StatusCode;
            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
예제 #5
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"));
        }