/// <summary>Only master data change</summary> /// <param name="master"></param> /// <returns></returns> public ActionResult DetailGridCustomUpdate(BA02AViewModel master) { string errMsg = ""; //Validation ValidateMaster(master); //Save if (ModelState.IsValid) { var BA02A = MasterToEntity(master); var result = _Service.UpdateM(BA02A); errMsg = result.Message; master = new BA02AViewModel(result.Data); } //Result if (errMsg.Length > 0 || !ModelState.IsValid) { errMsg += "Fail"; ViewData["EditErrorMsg"] = errMsg; ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", master); return(PartialView("_DetailGrid", GetBA02BList(master.BA02A_ID))); } else { CacheHelper.Invalidate("BA02A"); SetTempData(master.BA02A_ID); return(RedirectToAction("Index")); } }
private void ValidateMaster(BA02AViewModel master) { if (master.TYP_ID == null) { ModelState.AddModelError("TYP_ID", "必填"); } }
private BA02A MasterToEntity(BA02AViewModel master) { var BA02A = new BA02A(); if (master.BA02A_ID == 0)//Adding New { master.CREATE_USER = UserInfo.Id; master.CREATE_DATE = DateTime.Now; master.ToDomain(BA02A); } else//Update { BA02A = _Service.GetM(master.BA02A_ID); master.CREATE_USER = BA02A.CREATE_USER; master.CREATE_DATE = BA02A.CREATE_DATE; master.UPDATE_USER = UserInfo.Id; master.UPDATE_DATE = DateTime.Now; master.ToDomain(BA02A); } return(BA02A); }
/// <summary>Both master and detail has change</summary> /// <param name="batchData">contain updata、insert、delete list</param> /// <param name="master"></param> /// <returns></returns> public ActionResult DetailGridBatchUpdate(MVCxGridViewBatchUpdateValues <BA02BViewModel, int> updateValues, BA02AViewModel master) { string errMsg = ""; int errorCount = 0; int BA02A_ID = master.BA02A_ID; //Validation ValidateMaster(master); for (int i = 0; i < updateValues.Insert.Count; i++) { if (updateValues.IsValid(updateValues.Insert[i]) == false) { errorCount++; } if (updateValues.Insert[i].PUR_PR < 0) { errorCount++; ModelState.AddModelError($"Insert[{i}].PUR_PR", "金額不可為負");//display error in cell } //if (updateValues.Insert[i].REM_MM.Length > 10) //{ // errorCount++; // ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//display error in cell //} //foreach (var err in DDMHelper.ValidateData("BA02B", updateValues.Insert[i], replace: replace)) //{ // errorCount++; // ModelState.AddModelError($"Insert[{i}].{err.Key}", err.Value);//display error in cell //} } for (int i = 0; i < updateValues.Update.Count; i++) { if (updateValues.IsValid(updateValues.Update[i]) == false) { errorCount++; } if (updateValues.Update[i].PUR_PR < 0) { errorCount++; ModelState.AddModelError($"Insert[{i}].PUR_PR", "金額不可為負");//display error in cell } //if (updateValues.Update[i].REM_MM.Length > 10) //{ // errorCount++; // ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//display error in cell //} //foreach (var err in DDMHelper.ValidateData("BA02B", updateValues.Update[i], replace: replace)) //{ // errorCount++; // ModelState.AddModelError($"Update[{i}].{err.Key}", err.Value);//display error in cell //} } //Save if (errorCount == 0 && ModelState.IsValid) { var BA02A = MasterToEntity(master); var addList = new List <BA02B>(); foreach (var item in updateValues.Insert) { var BA02B = new BA02B(); item.REM_MM = master.REM_MM; item.CREATE_USER = UserInfo.Id; item.CREATE_DATE = DateTime.Now; item.ToDomain(BA02B); addList.Add(BA02B); } var updateList = new List <BA02B>(); foreach (var item in updateValues.Update) { var BA02B = new BA02B(); BA02B = _Service.GetD(x => x.BA02B_ID == item.BA02B_ID); item.CREATE_USER = BA02B.CREATE_USER; item.CREATE_DATE = BA02B.CREATE_DATE; item.UPDATE_USER = UserInfo.Id; item.UPDATE_DATE = DateTime.Now; item.ToDomain(BA02B); updateList.Add(BA02B); } errMsg = _Service.UpdateMD(BA02A, addList, updateList, updateValues.DeleteKeys); } //Result if (errMsg.Length > 0 || !ModelState.IsValid) { for (int i = 0; i < updateValues.Insert.Count; i++) { ModelState.AddModelError($"Insert[{i}].IsValid", "Error"); } for (int i = 0; i < updateValues.Update.Count; i++) { ModelState.AddModelError($"Update[{i}].IsValid", "Error"); } string deleteIDStrList = ""; for (int i = 0; i < updateValues.DeleteKeys.Count; i++) { updateValues.SetErrorText(updateValues.DeleteKeys[i], "Unable to delete!"); deleteIDStrList += updateValues.DeleteKeys[i] + ","; } ViewData["EditErrorMsg"] = "Failure" + "<br />" + errMsg; ViewData["DeleteIDList"] = deleteIDStrList; ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", master); return(PartialView("_DetailGrid", GetBA02BList(BA02A_ID))); } else { CacheHelper.Invalidate("BA02A"); SetTempData(master.BA02A_ID); return(RedirectToAction("Index")); } }