public static ResultHelper <BA02A> BeforeSave(BA02AModel model, ref BA02A entity, EntityState state, ModelStateDictionary ModelState) { var errMsg = ""; if (state == EntityState.Added) //新增 { errMsg = Validation(model, ModelState); if (errMsg == "" || ModelState.IsValid) { ToEntity(model, ref entity); entity.CREATE_USER = "******"; entity.CREATE_DATE = DateTime.Now; } } else if (state == EntityState.Modified)//修改 { errMsg = entity.BA02A_ID == 0 ? "資料已被刪除<br/>" : Validation(model, ModelState); if (errMsg == "" || ModelState.IsValid) { ToEntity(model, ref entity); entity.UPDATE_USER = "******"; entity.UPDATE_DATE = DateTime.Now; } } else //刪除 { errMsg = entity == null ? "資料已被刪除" : ""; } return(new ResultHelper <BA02A>() { Data = entity, Message = errMsg }); }
private ActionResult ResultHandler(string errMsg, BA02AModel master, MVCxGridViewBatchUpdateValues <BA02BModel, int> updateValues) { if (errMsg == "") { TempData["SelectedItemKey"] = master.BA02A_ID; TempData["SaveSuccess"] = true; return(RedirectToAction("RedirectIndex")); } else { 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"); } var deleteIDStrList = ""; for (int i = 0; i < updateValues.DeleteKeys.Count; i++) { updateValues.SetErrorText(updateValues.DeleteKeys[i], "Unable to delete!"); deleteIDStrList += updateValues.DeleteKeys[i] + ","; } ViewData["DeleteIDList"] = deleteIDStrList; errMsg = "存儲失敗<br/>" + errMsg; ViewData["ErrMsg"] = errMsg = errMsg.Substring(0, errMsg.Length - 5); ViewData["MasterForm"] = ReadViewHelper.PartialView(this, "_MasterForm", master); return(PartialView("_DetailGrid", BA02Business.FromEntity(_Service.GetByMasterKey(master.BA02A_ID)))); } }
private static void ToEntity(BA02AModel model, ref BA02A entity) { List <string> exclusiveList = new List <string>() { "CREATE_USER", "CREATE_DATE", "LASTUPDATE_USER", "LASTUPDATE_DATE" }; var objectHelper = new ObjectHelper(); objectHelper.CopyValue(model, entity, exclusiveList); }
private static string Validation(BA02AModel master, ModelStateDictionary ModelState) { List <string> errMsgList = new List <string>(); //if (master.REM_MM.Length > 10) //{ // ModelState.AddModelError("REM_MM", "太長"); //} return(string.Join("<br/>", errMsgList)); }
public static BA02AModel FromEntity(BA02A entity) { var data = new BA02AModel(); if (entity != null) { var objectHelper = new ObjectHelper(); objectHelper.CopyValue(entity, data); } return(data); }
public ActionResult Edit(int?key) { if (key.HasValue && key.Value > 0) { var entity = _Service.GetByKey(key.Value); if (entity == null) { ViewData["ErrMsg"] = "資料已被其他使用者刪除"; } ViewData["Master"] = BA02Business.FromEntity(entity); //new FA11AModel(); ViewData["Detail"] = BA02Business.FromEntity(_Service.GetByMasterKey(key.Value)); //new List<FA11BModel>(); } else { key = 0; ViewData["Master"] = new BA02AModel(); ViewData["Detail"] = new List <BA02BModel>(); } return(View(key)); }
public ActionResult DetailGridBatchUpdate(MVCxGridViewBatchUpdateValues <BA02BModel, int> updateValues, BA02AModel master) { string errMsg = ""; //Step1: 先把update資料抓回來 var entity = _Service.GetByKey(master.BA02A_ID) ?? new BA02A(); var deleteCount = _Service.GetByDetailKeys(updateValues.DeleteKeys).Count; var updateKeys = updateValues.Update.Select(x => x.BA02B_ID).ToList(); var detailUpdate = _Service.GetByDetailKeys(updateKeys).ToList(); //Step2: call business before save var state = entity.BA02A_ID == 0 ? EntityState.Added : EntityState.Modified; var result1 = BA02Business.BeforeSave(master, ref entity, state, ModelState); //資料已被刪除<br />" var result2 = BA02Business.BeforeSave(updateValues, detailUpdate, deleteCount, ModelState); //"明細資料已被刪除<br />請重新整理<br />" +"請檢查紅色驚嘆號<br />"; errMsg = result1.Message + result2.Message; //Step3: call service save change if (errMsg == "") { errMsg += _Service.SaveChangeBatch(ref entity, state, result2.Insert, result2.Update, result2.Delete); master.BA02A_ID = entity.BA02A_ID; } return(ResultHandler(errMsg, master, updateValues)); }