public ActionResult Edit(int ID) { try { var locationGroupEditViewModel = new LocationGroupEditViewModel(); if (ID > 0) { REF_LOCATION_GROUP_TB locationGroup = _uow.Repository <REF_LOCATION_GROUP_TB>().GetById(ID); locationGroupEditViewModel.Description = locationGroup.SZ_DESCRIPTION; locationGroupEditViewModel.ID = locationGroup.N_LOCATION_GROUP_SYSID; locationGroupEditViewModel.ShowMessageDescription = false; locationGroupEditViewModel.MessageDescription = ""; } else { locationGroupEditViewModel.Description = ""; locationGroupEditViewModel.ID = 0; locationGroupEditViewModel.ShowMessageDescription = false; locationGroupEditViewModel.MessageDescription = ""; } return(View("Edit", locationGroupEditViewModel)); } catch (Exception ex) { if (ex.InnerException == null) { ViewBag.Message = "Function: LocationGroupController.Edit_GET\n\nError: " + ex.Message; } else { ViewBag.Message = "Function: LocationGroupController.Edit_GET\n\nError: " + (ex.Message + "\n\nInnerException: " + ex.InnerException.Message); }; Session["ErrorMessage"] = ViewBag.Message; return(RedirectToAction("InternalServerError", "Error")); }; }
public ActionResult Edit(LocationGroupEditViewModel Model) { bool saveFailed; do { saveFailed = false; try { if (_locationRepo.IsLocationGroupDescriptionDuplicate(Model.Description)) { Model.ShowMessageDescription = true; Model.MessageDescription = "The Location Group Description already exists. Please enter a different one."; return(View(Model)); } else { if (ModelState.IsValid) { int id = 0; if (Model.ID == 0) //new { REF_LOCATION_GROUP_TB locationGroup = new REF_LOCATION_GROUP_TB() { B_INACTIVE = false, DT_ENTERED = DateTime.UtcNow, DT_MODIFIED = DateTime.UtcNow, SZ_DESCRIPTION = Model.Description, SZ_ENTERED_BY = _modifiedBy, SZ_MODIFIED_BY = _modifiedBy }; _uow.Repository <REF_LOCATION_GROUP_TB>().Add(locationGroup); _uow.SaveChanges(); REF_LOCATION_GROUP_TB locationGroupFound = _uow.Repository <REF_LOCATION_GROUP_TB>().Find(u => u.SZ_ENTERED_BY == _modifiedBy && u.SZ_MODIFIED_BY == _modifiedBy && u.SZ_DESCRIPTION == Model.Description).FirstOrDefault(); id = locationGroupFound.N_LOCATION_GROUP_SYSID; } else //edit { REF_LOCATION_GROUP_TB locationGroup = _uow.Repository <REF_LOCATION_GROUP_TB>().GetById(Model.ID); locationGroup.DT_MODIFIED = DateTime.UtcNow; locationGroup.SZ_DESCRIPTION = Model.Description; locationGroup.SZ_MODIFIED_BY = _modifiedBy; _uow.Repository <REF_LOCATION_GROUP_TB>().Update(locationGroup); _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: LocationGroupController.Edit_POST\n\nError: " + ex.Message + "\n\n" + sb; } else { ViewBag.Message = "Function: LocationGroupController.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: LocationGroupController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.GetBaseException().Message; } else { ViewBag.Message = "Function: LocationGroupController.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: LocationGroupController.Edit_POST\n\nError: " + ex.Message; } else { ViewBag.Message = "Function: LocationGroupController.Edit_POST\n\nError: " + ex.Message + "\n\nBaseException: " + ex.InnerException.Message; }; }; } while (saveFailed); Session["ErrorMessage"] = ViewBag.Message; return(RedirectToAction("InternalServerError", "Error")); }