public ActionResult Edit(int ID) { try { var facilityEditViewModel = new FacilityEditViewModel(); if (ID > 0) { REF_FACILITY_TB facility = _uow.Repository <REF_FACILITY_TB>().GetById(ID); facilityEditViewModel.ID = facility.N_FACILITY_SYSID; facilityEditViewModel.Title = facility.SZ_TITLE; facilityEditViewModel.ShowMessageTitle = false; facilityEditViewModel.MessageTitle = ""; } else { facilityEditViewModel.ID = 0; facilityEditViewModel.Title = ""; facilityEditViewModel.ShowMessageTitle = false; facilityEditViewModel.MessageTitle = ""; } return(View("Edit", facilityEditViewModel)); } catch (Exception ex) { if (ex.InnerException == null) { ViewBag.Message = "Function: FacilityController.Edit_GET\n\nError: " + ex.Message; } else { ViewBag.Message = "Function: FacilityController.Edit_GET\n\nError: " + (ex.Message + "\n\nInnerException: " + ex.InnerException.Message); }; Session["ErrorMessage"] = ViewBag.Message; return(RedirectToAction("InternalServerError", "Error")); }; }
public ActionResult Edit(FacilityEditViewModel Model) { bool saveFailed; do { saveFailed = false; try { if (_facilityRepo.IsFacilityTitleDuplicate(Model.Title)) { Model.ShowMessageTitle = true; Model.MessageTitle = "The Facility Title already exists. Please enter a different one."; return(View(Model)); } else { if (ModelState.IsValid) { int id = 0; if (Model.ID == 0) //new { REF_FACILITY_TB facility = new REF_FACILITY_TB() { B_INACTIVE = false, DT_ENTERED = DateTime.UtcNow, DT_MODIFIED = DateTime.UtcNow, SZ_ENTERED_BY = _modifiedBy, SZ_MODIFIED_BY = _modifiedBy, SZ_TITLE = Model.Title }; _uow.Repository <REF_FACILITY_TB>().Add(facility); _uow.SaveChanges(); REF_FACILITY_TB facilityFound = _uow.Repository <REF_FACILITY_TB>().Find(u => u.SZ_ENTERED_BY == _modifiedBy && u.SZ_MODIFIED_BY == _modifiedBy && u.SZ_TITLE == Model.Title).FirstOrDefault(); id = facilityFound.N_FACILITY_SYSID; } else //edit { REF_FACILITY_TB facility = _uow.Repository <REF_FACILITY_TB>().GetById(Model.ID); facility.DT_MODIFIED = DateTime.UtcNow; facility.SZ_MODIFIED_BY = _modifiedBy; facility.SZ_TITLE = Model.Title; _uow.Repository <REF_FACILITY_TB>().Update(facility); _uow.SaveChanges(); id = Model.ID; } 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: FacilityController.Edit_POST\n\nError: " + ex.Message + "\n\n" + sb; } else { ViewBag.Message = "Function: FacilityController.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: FacilityController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.GetBaseException().Message; } else { ViewBag.Message = "Function: FacilityController.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: FacilityController.Edit_POST\n\nError: " + ex.Message; } else { ViewBag.Message = "Function: FacilityController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.InnerException.Message; }; }; } while (saveFailed); Session["ErrorMessage"] = ViewBag.Message; return(RedirectToAction("InternalServerError", "Error")); }