public async Task <IActionResult> OptionDetailCreate(bool isPop, OptionMasterDetail optionmasterDetail) { if (!CheckSystemUserAsync()) { return(RedirectToAction("Error", "Home", new { errormessage = "UserauthError" })); } if (ModelState.IsValid) { optionmasterDetail.Createdate = DateTime.Now; optionmasterDetail.Createuser = HttpContext.Session.GetString("userId"); optionmasterDetail.Modifydate = DateTime.Now; optionmasterDetail.Modifyuser = HttpContext.Session.GetString("userId"); optionmasterDetail.Optionid = optionmasterDetail.Masterid + "-" + (_context.OptionMasterDetail.Where(x => x.Masterid == optionmasterDetail.Masterid).Count() + 1); _context.Add(optionmasterDetail); await _context.SaveChangesAsync(); return(RedirectToAction("Close", "Home")); } ViewBag.isPop = isPop; return(View(optionmasterDetail)); }
/// <summary> /// 옵션 세부 내용 삭제 /// </summary> /// <param name="Masterid"></param> /// <param name="IsPop"></param> /// <param name="optionMaster"></param> /// <returns></returns> public async Task <IActionResult> OptiondetailDelete(string Optionid, bool IsPop, OptionMasterDetail optionmasterDetail) { if (!CheckSystemUserAsync()) { return(RedirectToAction("Error", "Home", new { errormessage = "UserauthError" })); } var ss = _context.OptionMasterDetail.SingleOrDefault(m => m.Optionid == Optionid); _context.OptionMasterDetail.Remove(ss); await _context.SaveChangesAsync(); return(RedirectToAction("Close", "Home")); }
public async Task <IActionResult> OptionDetailEdit(string Optionid, bool IsPop, OptionMasterDetail optionmasterDetail) { if (!CheckSystemUserAsync()) { return(RedirectToAction("Error", "Home", new { errormessage = "UserauthError" })); } if (Optionid != optionmasterDetail.Optionid) { return(NotFound()); } if (ModelState.IsValid) { try { optionmasterDetail.Modifydate = DateTime.Now; optionmasterDetail.Modifyuser = HttpContext.Session.GetString("userId"); // 세부 옵션 var sub = _context.OptionMasterDetail .AsNoTracking() .Where(x => x.Masterid == optionmasterDetail.Masterid); // 기존 순서 long oldOrder = sub.SingleOrDefault(x => x.Optionid == optionmasterDetail.Optionid).Order; // 기존 순서 존재 시 if (sub.Any(e => e.Order == optionmasterDetail.Order) && oldOrder != optionmasterDetail.Order) { // 수정하고 있는 세부메뉴창에서 입력한 Order가 이미 존재한다면 교체 OptionMasterDetail exist = sub.SingleOrDefault(x => x.Order == optionmasterDetail.Order); exist.Order = oldOrder; // 기존 순서를 새로 입력한 Order로 교체 _context.Update(exist); // 기존 순서를 업데이트 _context.Update(optionmasterDetail); await _context.SaveChangesAsync(); } else { // 존재하지 않으면 넣은 값으로 그대로 업데이트 if (optionmasterDetail.Order > sub.Count()) { optionmasterDetail.Order = sub.Count() + 1; } _context.Update(optionmasterDetail); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { if (!OptionDetailExists(optionmasterDetail.Optionid)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Close", "Home")); } ViewBag.isPop = true; return(View(optionmasterDetail)); }