protected bool ValidateModel(GeneralInfoModel model) { // Если не установлен флаг отсутствия отчества, то отчество должно быть заполнено if (!model.IsPatronymicAbsent && string.IsNullOrEmpty(model.Patronymic)) { ModelState.AddModelError("Patronymic", "Обязательное поле, если не отмечен флаг \"Отчество отсутствует\""); } // Вид застрахованного лица только для граждан других государств // Срок действия справки не может быть меньше текущего дня if (model.DisabilityCertificateExpirationDate.HasValue && model.DisabilityCertificateExpirationDate < DateTime.Now) { ModelState.AddModelError("DisabilityCertificateExpirationDate", "Некорректный срок действия справки"); } ValidateFileLength(model.PhotoFile, "PhotoFile", 2); ValidateFileLength(model.INNScanFile, "INNScanFile", 2); ValidateFileLength(model.SNILSScanFile, "SNILSScanFile", 2); ValidateFileLength(model.DisabilityCertificateScanFile, "DisabilityCertificateScanFile", 2); if (!model.IsGIDraft) { //GeneralInfoModel mt = EmploymentBl.GetGeneralInfoModel(model.UserId); //закомментарены проверки на наличие сканов из-зи новой страницы ////должен быть скан инн и снилс //if (!string.IsNullOrEmpty(model.INN)) //{ // if (model.INNScanFile == null && string.IsNullOrEmpty(mt.INNScanAttachmentFilename)) // { // ModelState.AddModelError("INNScanFile", "Не выбран файл скана ИНН для загрузки!"); // } //} //if (model.SNILSScanFile == null && string.IsNullOrEmpty(mt.SNILSScanAttachmentFilename)) //{ // ModelState.AddModelError("SNILSScanFile", "Не выбран файл скана СНИЛС для загрузки!"); //} ////скан справки по инвалидости, если какие-то из полей заполнены //if (!string.IsNullOrEmpty(model.DisabilityCertificateSeries) || !string.IsNullOrEmpty(model.DisabilityCertificateNumber) || model.DisabilityCertificateDateOfIssue.HasValue || // model.DisabilityCertificateExpirationDate.HasValue || (model.DisabilityDegreeId.HasValue && model.DisabilityDegreeId != 0) || model.IsDisabilityTermLess) //{ // if (model.DisabilityCertificateScanFile == null && string.IsNullOrEmpty(mt.DisabilityCertificateScanAttachmentFilename)) // { // ModelState.AddModelError("DisabilityCertificateScanFile", "Не выбран файл скана справки об инвалидности для загрузки!"); // } //} if (!model.IsValidate) { ModelState.AddModelError("AgreedToPersonalDataProcessing", "Подтвердите правильность предоставленных данных! Подтвердив правильность предоставленных данных, Вы не сможете больше вносить изменения в данную часть анкеты!"); } } return ModelState.IsValid; }
public ActionResult GeneralInfo(GeneralInfoModel model) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (ValidateModel(model)) { model.IsDraft = model.IsGIDraft; EmploymentBl.ProcessSaving<GeneralInfoModel, GeneralInfo>(model, out error); //ViewBag.Error = error; model = EmploymentBl.GetGeneralInfoModel(model.UserId); ModelState.AddModelError("AgreedToPersonalDataProcessing", string.IsNullOrEmpty(error) ? "Данные сохранены!" : error); } else { //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии model = EmploymentBl.GetGeneralInfoModel(model); if (Session["GeneralInfoM" + SPPath] != null) Session.Remove("GeneralInfoM" + SPPath); if (Session["GeneralInfoM" + SPPath] == null) Session.Add("GeneralInfoM" + SPPath, model); } if (Session["GeneralInfoMS" + SPPath] != null) Session.Remove("GeneralInfoMS" + SPPath); if (Session["GeneralInfoMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("GeneralInfoMS" + 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=1"); else return model.IsFinal && !EmploymentBl.IsUnlimitedEditAvailable() ? View("GeneralInfoReadOnly", model) : View(model); }