public GeneralResponse EditLevelCondition(EditLevelConditionRequest request) { GeneralResponse response = new GeneralResponse(); LevelCondition levelCondition = new LevelCondition(); levelCondition = _levelConditionRepository.FindBy(request.ID); if (levelCondition != null) { try { levelCondition.ModifiedDate = PersianDateTime.Now; levelCondition.ModifiedEmployee = _employeeRepository.FindBy(request.ModifiedEmployeeID); if (request.ConditionID != levelCondition.Condition.ID) { levelCondition.Condition = this._conditionRepository.FindBy(request.ConditionID); } if (request.LevelID != levelCondition.Level.ID) { levelCondition.Level = this._levelRepository.FindBy(request.LevelID); } if (levelCondition.RowVersion != request.RowVersion) { response.ErrorMessages.Add("EditConcurrencyKey"); return(response); } else { levelCondition.RowVersion += 1; } if (levelCondition.GetBrokenRules().Count() > 0) { foreach (BusinessRule businessRule in levelCondition.GetBrokenRules()) { response.ErrorMessages.Add(businessRule.Rule); } return(response); } _levelConditionRepository.Save(levelCondition); _uow.Commit(); ////response.success = true; } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); } } else { response.ErrorMessages.Add("NoItemToEditKey"); } return(response); }
public ActionResult Edit(string id, LevelConditionDetailView levelConditionDetailView) { #region Check Access bool hasPermission = GetEmployee().IsGuaranteed("LevelCondition_Update"); if (!hasPermission) { ModelState.AddModelError("", "AccessDenied"); return(View(levelConditionDetailView)); } #endregion if (ModelState.IsValid) { try { EditLevelConditionRequest request = new EditLevelConditionRequest(); request.ID = Guid.Parse(id); request.ModifiedEmployeeID = GetEmployee().ID; request.ConditionID = levelConditionDetailView.LevelConditionView.Condition.ID; request.LevelID = levelConditionDetailView.LevelConditionView.LevelID; request.RowVersion = levelConditionDetailView.LevelConditionView.RowVersion; GeneralResponse response = this._levelConditionService.EditLevelCondition(request); if (response.success) { return(RedirectToAction("Index")); } else { foreach (string error in response.ErrorMessages) { ModelState.AddModelError("", error); } return(View(levelConditionDetailView)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(levelConditionDetailView)); } } return(View(levelConditionDetailView)); }