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)); }
//[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")); }
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(); }
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")); }
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")); }