public ActionResult Edit(int ID) { try { var receivingWaterEditViewModel = new ReceivingWaterEditViewModel(); if (ID > 0) { REF_WATER_BODY_TB receivingWater = _uow.Repository <REF_WATER_BODY_TB>().GetById(ID); receivingWaterEditViewModel.ReceivingWaterDescription = receivingWater.SZ_DESCRIPTION == null ? "" : receivingWater.SZ_DESCRIPTION; receivingWaterEditViewModel.ReceivingWaterID = receivingWater.N_WATER_BODY_SYSID; receivingWaterEditViewModel.ShowMessageDescription = false; receivingWaterEditViewModel.MessageDescription = ""; } else { receivingWaterEditViewModel.ReceivingWaterDescription = ""; receivingWaterEditViewModel.ReceivingWaterID = ID; receivingWaterEditViewModel.ShowMessageDescription = false; receivingWaterEditViewModel.MessageDescription = ""; } return(View("Edit", receivingWaterEditViewModel)); } catch (Exception ex) { if (ex.InnerException == null) { ViewBag.Message = "Function: ReceivingWaterController.Edit_GET\n\nError: " + ex.Message; } else { ViewBag.Message = "Function: ReceivingWaterController.Edit_GET\n\nError: " + (ex.Message + "\n\nInnerException: " + ex.InnerException.Message); }; Session["ErrorMessage"] = ViewBag.Message; return(RedirectToAction("InternalServerError", "Error")); }; }
public ActionResult Edit(ReceivingWaterEditViewModel Model) { bool saveFailed; do { saveFailed = false; try { if (_receivingWaterRepo.IsReceivingWaterDescriptionDuplicate(Model.ReceivingWaterDescription)) { Model.ShowMessageDescription = true; Model.MessageDescription = "The Receiving Water Description already exists. Please enter a different one."; return(View(Model)); } else { if (ModelState.IsValid) { int id = 0; if (Model.ReceivingWaterID == 0) //new { int receivingWaterID = _receivingWaterRepo.GetNextRecWaterID(); REF_WATER_BODY_TB receivingWater = new REF_WATER_BODY_TB() { SZ_ENTERED_BY = _modifiedBy, DT_ENTERED = DateTime.UtcNow, SZ_MODIFIED_BY = _modifiedBy, DT_MODIFIED = DateTime.UtcNow, SZ_NAME = Model.ReceivingWaterDescription, SZ_DESCRIPTION = Model.ReceivingWaterDescription }; _uow.Repository <REF_WATER_BODY_TB>().Add(receivingWater); _uow.SaveChanges(); REF_WATER_BODY_TB receivingWaterFound = _uow.Repository <REF_WATER_BODY_TB>().Find(u => u.SZ_ENTERED_BY == _modifiedBy && u.SZ_MODIFIED_BY == _modifiedBy && u.SZ_DESCRIPTION == Model.ReceivingWaterDescription ).FirstOrDefault(); id = receivingWaterFound.N_WATER_BODY_SYSID; } else //edit { REF_WATER_BODY_TB receivingWater = _uow.Repository <REF_WATER_BODY_TB>().GetById(Model.ReceivingWaterID); receivingWater.SZ_MODIFIED_BY = _modifiedBy; receivingWater.DT_MODIFIED = DateTime.UtcNow; receivingWater.SZ_DESCRIPTION = Model.ReceivingWaterDescription; _uow.Repository <REF_WATER_BODY_TB>().Update(receivingWater); _uow.SaveChanges(); id = Model.ReceivingWaterID; } return(RedirectToAction("Index", new { ID = id })); } return(View(Model)); } } catch (DbEntityValidationException ex) { StringBuilder sb = new StringBuilder(); foreach (var failure in ex.EntityValidationErrors) { sb.AppendFormat("{0} failed validation:\n\n", failure.Entry.Entity.GetType()); foreach (var error in failure.ValidationErrors) { sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage); sb.AppendLine(); } } if (ex.InnerException == null) { ViewBag.Message = "Function: ReceivingWaterController.Edit_POST\n\nError: " + ex.Message + "\n\n" + sb; } else { ViewBag.Message = "Function: ReceivingWaterController.Edit_POST\n\nError: " + ex.Message + "\n\n" + sb + "\n\n" + ex.InnerException.Message; }; } catch (DbUpdateConcurrencyException ex) { saveFailed = true; var entry = ex.Entries.Single(); entry.OriginalValues.SetValues(entry.GetDatabaseValues()); } catch (DataException ex) { if (ex.InnerException == null) { ViewBag.Message = "Function: ReceivingWaterController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.GetBaseException().Message; } else { ViewBag.Message = "Function: ReceivingWaterController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.GetBaseException().Message + "\n\nInnerException: " + ex.InnerException.Message; }; } catch (Exception ex) { if (ex.InnerException == null) { ViewBag.Message = "Function: ReceivingWaterController.Edit_POST\n\nError: " + ex.Message; } else { ViewBag.Message = "Function: ReceivingWaterController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.InnerException.Message; }; }; } while (saveFailed); Session["ErrorMessage"] = ViewBag.Message; return(RedirectToAction("InternalServerError", "Error")); }