Example #1
0
        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
            });
        }
Example #2
0
        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))));
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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));
        }
Example #5
0
        public static BA02AModel FromEntity(BA02A entity)
        {
            var data = new BA02AModel();

            if (entity != null)
            {
                var objectHelper = new ObjectHelper();
                objectHelper.CopyValue(entity, data);
            }
            return(data);
        }
Example #6
0
 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));
 }
Example #7
0
        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));
        }