public static TR01BModel FromEntity(TR01B entity, DataRow dataRow) { var data = new TR01BModel(); if (entity != null) { var objectHelper = new ActWeis.Utility.ObjectHelper(); objectHelper.CopyValue(entity, data); //資料處理 var item = CacheCommonDataModule.GetBA02A().Where(x => x.BA02A_ID == entity.BA02A_ID).FirstOrDefault(); if (item != null) { data.ITM_NO = item.ITM_NO; data.ITM_NM = item.ITM_NM; data.ITM_SP = item.ITM_SP; } var totalQTSTR = dataRow["TotalQT"].ToString(); decimal.TryParse(totalQTSTR, out decimal total); data.ARR_QT_Sum = total; if (data.ARR_QT_Sum == data.PUR_QT) { data.ARR_ST = "1"; } else { data.ARR_ST = "0"; } var totalMYStr = dataRow["TotalMY"].ToString(); decimal.TryParse(totalMYStr, out decimal totalMY); data.ReceiveMY = totalMY; } return(data); }
/// <summary> /// viewmodel to entity /// </summary> /// <param name="entity"></param> public void ToDomain(TR01B entity) { if (entity != null) { var objectHelper = new ActWeis.Utility.ObjectHelper(); objectHelper.CopyValue(this, entity); #region [ 資料處理 ] #endregion [ 資料處理 ] } }
/// <summary>viewmodel to entity </summary> /// <param name="entity"></param> private static TR01B ToEntity(TR01BViewModel data) { var entity = new TR01B(); if (data != null) { //資料處理 var objectHelper = new ActWeis.Utility.ObjectHelper(); objectHelper.CopyValue(data, entity); } return(entity); }
/// <summary>Entity to viewmodel Single</summary> /// <param name="entity">TR01B</param> public static TR01BViewModel FromEntity(TR01B entity) { var data = new TR01BViewModel(); if (entity != null) { var objectHelper = new ActWeis.Utility.ObjectHelper(); objectHelper.CopyValue(entity, data); //資料處理 var item = CacheCommonDataModule.GetBA02A().Where(x => x.BA02A_ID == entity.BA02A_ID).FirstOrDefault(); if (item != null) { data.ITM_NO = item.ITM_NO; data.ITM_NM = item.ITM_NM; } } return(data); }
/// <summary> /// entity to viewmodel /// </summary> /// <param name="entity"></param> public void FromDomain(TR01B entity) { if (entity != null) { var objectHelper = new ActWeis.Utility.ObjectHelper(); objectHelper.CopyValue(entity, this); #region [ 資料處理 ] var item = CacheCommonDataModule.GetBA02A().Where(x => x.BA02A_ID == entity.BA02A_ID).FirstOrDefault(); if (item != null) { this.ITM_NO = item.ITM_NO; this.ITM_NM = item.ITM_NM; } //var incorporation = CacheCommonDataModule.GetBA01A().Where(x => x.BA01A_ID == entity.BA01A_ID).FirstOrDefault(); //if (incorporation != null) //{ // this.ITM_NO = item.ITM_NO; // this.ITM_NM = item.ITM_NM; //} #endregion [ 資料處理 ] } }
/// <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 <TR01BViewModel, int> updateValues, TR01AViewModel master) { string errMsg = ""; int errorCount = 0; int TR01A_ID = master.TR01A_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].REM_MM.Length > 10) //{ // errorCount++; // ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//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].REM_MM.Length > 10) //{ // errorCount++; // ModelState.AddModelError($"Update[{i}].REM_MM", "REM_MM太長");//display error in cell //} } //Save if (errorCount == 0 && ModelState.IsValid) { var TR01A = MasterToEntity(master); var addList = new List <TR01B>(); foreach (var item in updateValues.Insert) { var TR01B = new TR01B(); item.CREATE_USER = "******"; item.CREATE_DATE = DateTime.Now; item.ToDomain(TR01B); addList.Add(TR01B); } var updateList = new List <TR01B>(); foreach (var item in updateValues.Update) { var TR01B = new TR01B(); TR01B = _Service.GetD(x => x.TR01B_ID == item.TR01B_ID); item.CREATE_USER = TR01B.CREATE_USER; item.CREATE_DATE = TR01B.CREATE_DATE; item.UPDATE_USER = "******"; item.UPDATE_DATE = DateTime.Now; item.ToDomain(TR01B); updateList.Add(TR01B); } errMsg = _Service.UpdateMD(TR01A, 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", GetTR01BList(TR01A_ID))); } else { SetTempData(master.TR01A_ID); return(RedirectToAction("Index")); } }
public TR01BViewModel(TR01B entity) { this.FromDomain(entity); }
/// <summary>delete寫Log的時候要先去update</summary> /// <param name="data"></param> /// <returns></returns> public ServiceResult <TR01A> Update(TR01A entity, List <TR01B> CreateD, List <TR01B> UpdateD, List <int> DeleteD) { string errMsg = ""; using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot)) { try { //Master if (entity.TR01A_ID == 0) { _Entity.Entry(entity).State = EntityState.Added; } else { _Entity.Entry(entity).State = EntityState.Modified; } _Entity.SaveChanges(); //detail 處理 TR01A_ID foreach (var item in CreateD) { item.TR01A_ID = entity.TR01A_ID; _Entity.Entry(item).State = EntityState.Added; } foreach (var item in UpdateD) { item.TR01A_ID = entity.TR01A_ID; _Entity.Entry(item).State = EntityState.Modified; } //要先update delete的資料 foreach (var key in DeleteD) { var deleteData = new TR01B { TR01B_ID = key }; _Entity.Entry(deleteData).State = EntityState.Deleted; } _Entity.SaveChanges(); trans.Commit(); } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { foreach (var eve in ex.EntityValidationErrors) { errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } } catch (Exception ex) { errMsg = ex.Message; } } return(new ServiceResult <TR01A>() { Data = entity, Message = errMsg }); }