public ActionResult Contacts(ContactsModel model) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (ValidateModel(model)) { model.IsDraft = model.IsContactDraft; EmploymentBl.ProcessSaving<ContactsModel, Contacts>(model, out error); model = EmploymentBl.GetContactsModel(model.UserId); ModelState.AddModelError("IsValidate", string.IsNullOrEmpty(error) ? "Данные сохранены!" : error); ViewBag.Error = error; } else { //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии model = EmploymentBl.GetContactsModel(model); if (Session["ContactsM" + SPPath] != null) Session.Remove("ContactsM" + SPPath); if (Session["ContactsM" + SPPath] == null) Session.Add("ContactsM" + SPPath, model); } if (Session["ContactsMS" + SPPath] != null) Session.Remove("ContactsMS" + SPPath); if (Session["ContactsMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("ContactsMS" + SPPath, mst); } if ((AuthenticationService.CurrentUser.UserRole & UserRole.PersonnelManager) > 0 && EmploymentBl.IsUnlimitedEditAvailable()) return Redirect("PersonnelInfo?id=" + model.UserId + "&IsCandidateInfoAvailable=true&IsBackgroundCheckAvailable=true&IsManagersAvailable=true&IsPersonalManagersAvailable=true&TabIndex=7"); else return model.IsFinal && !EmploymentBl.IsUnlimitedEditAvailable() ? View("ContactsReadOnly", model) : View(model); }
protected bool ValidateModel(ContactsModel model) { if (!model.IsContactDraft) { //ModelState.Clear(); if (!model.IsValidate) { ModelState.AddModelError("IsValidate", "Подтвердите правильность предоставленных данных! Подтвердив правильность предоставленных данных, Вы не сможете больше вносить изменения в данную часть анкеты!"); } } return ModelState.IsValid; }