public ActionResult Create(CodeDetailView CodeDetailView) { CodeDetailView.EmployeeView = GetEmployee(); #region Access Check bool hasPermission = GetEmployee().IsGuaranteed("Code_Insert"); if (!hasPermission) { ModelState.AddModelError("", "AddcessDenied"); return(View(CodeDetailView)); } #endregion GetRequest getCenterRequest = new GetRequest() { ID = CodeDetailView.CodeView.CenterID }; CodeDetailView.CodeView.CenterName = _centerService.GetCenter(getCenterRequest).CenterView.CenterName; if (ModelState.IsValid) { try { AddCodeRequestOld request = new AddCodeRequestOld(); request.CreateEmployeeID = GetEmployee().ID; request.CenterID = CodeDetailView.CodeView.CenterID; request.CodeName = CodeDetailView.CodeView.CodeName; GeneralResponse response = _codeService.AddCode(request); if (response.success) { return(RedirectToAction("Index/" + request.CenterID)); } else { foreach (string error in response.ErrorMessages) { ModelState.AddModelError("", error); } return(View(CodeDetailView)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(CodeDetailView)); } } return(View(CodeDetailView)); }
public GeneralResponse AddCode(AddCodeRequestOld request) { GeneralResponse response = new GeneralResponse(); try { Code code = new Code(); code.ID = Guid.NewGuid(); code.CreateDate = PersianDateTime.Now; code.CreateEmployee = _employeeRepository.FindBy(request.CreateEmployeeID); code.Center = _centerRepository.FindBy(request.CenterID); code.CodeName = request.CodeName; code.RowVersion = 1; #region If Duplicate, send Error message Infrastructure.Querying.Query query = new Infrastructure.Querying.Query(); Criterion criterion = new Criterion("CodeName", code.CodeName, CriteriaOperator.Equal); query.Add(criterion); if (_codeRepository.FindBy(query).Count() > 0) { Code exitstCode = _codeRepository.FindBy(query).FirstOrDefault(); //response.ErrorMessages.Add(String.Format("این پیش شماره قبلاً برای مرکز مخابراتی «{0}» به ثبت رسیده است.", exitstCode.Center.CenterName)); response.ErrorMessages.Add("RegisteredKey" + exitstCode.Center.CenterName + "ThisPerfixKey"); return(response); } #endregion #region Update Center Of Customers if exist any IEnumerable <Customer> customers = _customerRepository.FindByPhoneCode(code.CodeName); Center center = _centerRepository.FindBy(request.CenterID); if (customers.Count() > 0) { foreach (Customer customer in customers) { customer.Center = center; _customerRepository.Save(customer); } } #endregion #region Validation if (code.GetBrokenRules().Count() > 0) { foreach (BusinessRule businessRule in code.GetBrokenRules()) { response.ErrorMessages.Add(businessRule.Rule); } return(response); } #endregion _codeRepository.Add(code); _uow.Commit(); ////response.success = true; } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); } return(response); }