protected bool ValidateModel(PassportModel model) { ValidateFileLength(model.InternalPassportScanFile, "InternalPassportScanFile", 20); //проверка для номера паспорта if (string.IsNullOrEmpty(model.InternalPassportNumber) || string.IsNullOrWhiteSpace(model.InternalPassportNumber)) { ModelState.AddModelError("InternalPassportNumber", "Обязательное поле"); } else { try { Convert.ToInt32(model.InternalPassportNumber); } catch { ModelState.AddModelError("InternalPassportNumber", "Числовое поле"); } //Российский паспорт if (model.DocumentTypeId == 1 && model.InternalPassportNumber.Length != 6) { ModelState.AddModelError("InternalPassportNumber", "Требуется 6 цифр"); } } if (!model.IsPassportDraft) { //PassportModel mt = EmploymentBl.GetPassportModel(model.UserId); //if (model.InternalPassportScanFile == null && string.IsNullOrEmpty(mt.InternalPassportScanAttachmentFilename)) //{ // ModelState.AddModelError("InternalPassportScanFile", "Не выбран файл скана документа для загрузки!"); //} if (!model.IsValidate) { ModelState.AddModelError("IsValidate", "Подтвердите правильность предоставленных данных! Подтвердив правильность предоставленных данных, Вы не сможете больше вносить изменения в данную часть анкеты!"); } } return ModelState.IsValid; }
public ActionResult Passport(PassportModel model, IEnumerable<HttpPostedFileBase> files) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (ValidateModel(model)) { model.IsDraft = model.IsPassportDraft; EmploymentBl.ProcessSaving<PassportModel, Passport>(model, out error); model = EmploymentBl.GetPassportModel(model.UserId); ViewBag.Error = error; ModelState.AddModelError("IsValidate", string.IsNullOrEmpty(error) ? "Данные сохранены!" : error); } else { //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии model = EmploymentBl.GetPassportModel(model); if (Session["PassportM" + SPPath] != null) Session.Remove("PassportM" + SPPath); if (Session["PassportM" + SPPath] == null) Session.Add("PassportM" + SPPath, model); } if (Session["PassportMS" + SPPath] != null) Session.Remove("PassportMS" + SPPath); if (Session["PassportMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("PassportMS" + 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=2"); else return model.IsFinal && !EmploymentBl.IsUnlimitedEditAvailable() ? View("PassportReadOnly", model) : View(model); }