public ActionResult Create(UncreditServiceDetailView uncreditServiceDetailView) { uncreditServiceDetailView.EmployeeView = GetEmployee(); #region Access Check bool hasPermission = GetEmployee().IsGuaranteed("UncreditService_Insert"); if (!hasPermission) { ModelState.AddModelError("", "AccessDenied"); return(View(uncreditServiceDetailView)); } #endregion if (ModelState.IsValid) { try { AddUncreditServiceRequestOld request = new AddUncreditServiceRequestOld(); request.CreateEmployeeID = GetEmployee().ID; request.Discontinued = uncreditServiceDetailView.UncreditServiceView.Discontinued; request.Imposition = uncreditServiceDetailView.UncreditServiceView.Imposition; request.MaxDiscount = uncreditServiceDetailView.UncreditServiceView.MaxDiscount; request.SortOrder = uncreditServiceDetailView.UncreditServiceView.SortOrder; request.UnCreditServiceCode = uncreditServiceDetailView.UncreditServiceView.UnCreditServiceCode; request.Note = uncreditServiceDetailView.UncreditServiceView.Note; request.UncreditServiceName = uncreditServiceDetailView.UncreditServiceView.UncreditServiceName; request.UnitPrice = uncreditServiceDetailView.UncreditServiceView.UnitPrice; GeneralResponse response = this._uncreditServiceService.AddUncreditService(request); if (!response.hasError) { return(RedirectToAction("Index")); } else { foreach (string error in response.ErrorMessages) { ModelState.AddModelError("", error); } return(View(uncreditServiceDetailView)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(uncreditServiceDetailView)); } } return(View(uncreditServiceDetailView)); }
public GeneralResponse AddUncreditService(AddUncreditServiceRequestOld request) { GeneralResponse response = new GeneralResponse(); try { UncreditService uncreditService = new UncreditService(); uncreditService.ID = Guid.NewGuid(); uncreditService.CreateDate = PersianDateTime.Now; uncreditService.CreateEmployee = _employeeRepository.FindBy(request.CreateEmployeeID); uncreditService.Imposition = request.Imposition; uncreditService.MaxDiscount = request.MaxDiscount; uncreditService.UnCreditServiceCode = request.UnCreditServiceCode; uncreditService.UncreditServiceName = request.UncreditServiceName; uncreditService.UnitPrice = request.UnitPrice; uncreditService.Note = request.Note; uncreditService.Discontinued = request.Discontinued; uncreditService.SortOrder = GetSortOrder(); uncreditService.RowVersion = 1; // Validation if (uncreditService.GetBrokenRules().Count() > 0) { foreach (BusinessRule businessRule in uncreditService.GetBrokenRules()) { response.ErrorMessages.Add(businessRule.Rule); } return(response); } _uncreditServiceRepository.Add(uncreditService); _uow.Commit(); } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException.Message.Substring(0, 183) == @"The INSERT statement conflicted with the CHECK constraint ""CK_UnCreditService"". The conflict occurred in database ""Saman"", table ""Store.UncreditService"", column 'UnCreditServiceCode'.") { response.ErrorMessages.Add("کد خدمات غیراعتباری باید از 5000 شروع شود."); } else { response.ErrorMessages.Add(ex.Message); if (ex.InnerException != null) { response.ErrorMessages.Add(ex.InnerException.Message); } } } return(response); }