protected bool ValidateModel(ScanOriginalDocumentsModel model) { ValidateFileLength(model.INNScanFile, "INNScanFile", 2); ValidateFileLength(model.SNILSScanFile, "SNILSScanFile", 2); ValidateFileLength(model.DisabilityCertificateScanFile, "DisabilityCertificateScanFile", 2); ValidateFileLength(model.InternalPassportScanFile, "InternalPassportScanFile", 20); ValidateFileLength(model.HigherEducationDiplomaScanFile, "HigherEducationDiplomaScanFile", 5); ValidateFileLength(model.PostGraduateEducationDiplomaScanFile, "PostGraduateEducationDiplomaScanFile", 2); ValidateFileLength(model.CertificationScanFile, "CertificationScanFile", 2); ValidateFileLength(model.TrainingScanFile, "TrainingScanFile", 2); ValidateFileLength(model.MarriageCertificateScanFile, "MarriageCertificateScanFile", 2); ValidateFileLength(model.ChildBirthCertificateScanFile, "ChildBirthCertificateScanFile", 2); ValidateFileLength(model.MilitaryCardScanFile, "MilitaryCardScanFile", 20); ValidateFileLength(model.MobilizationTicketScanFile, "MobilizationTicketScanFile", 2); ValidateFileLength(model.WorkBookScanFile, "WorkBookScanFile", 20); ValidateFileLength(model.WorkBookSupplementScanFile, "WorkBookSupplementScanFile", 20); ValidateFileLength(model.PersonalDataProcessingScanFile, "PersonalDataProcessingScanFile", 1); ValidateFileLength(model.InfoValidityScanFile, "InfoValidityScanFile", 1); if (!model.AgreedToPersonalDataProcessing) ModelState.AddModelError("AgreedToPersonalDataProcessing", "Подтвердите правильность предоставленных данных! Подтвердив правильность предоставленных данных, Вы не сможете больше вносить изменения в данную часть анкеты!"); if (!model.IsScanFinal && model.IsAgree) { ModelState.AddModelError("IsScanFinal", "Подтвердите достоверность всех приложенных сканов документов! Подтвердив данный пункт, Вы не сможете больше вносить изменения в данную часть анкеты!"); } if (model.IsScanFinal && model.IsAgree) { ScanOriginalDocumentsModel mt = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); if (model.SNILSScanFile == null && string.IsNullOrEmpty(mt.SNILSScanAttachmentFilename)) { ModelState.AddModelError("SNILSScanFile", "Не выбран файл скана СНИЛС для загрузки!"); } if (model.InternalPassportScanFile == null && string.IsNullOrEmpty(mt.InternalPassportScanAttachmentFilename)) { ModelState.AddModelError("InternalPassportScanFile", "Не выбран файл скана документа для загрузки!"); } if (!model.IsVolga) { if (model.HigherEducationDiplomaScanFile == null && string.IsNullOrEmpty(mt.HigherEducationDiplomaScanFileName)) { ModelState.AddModelError("HigherEducationDiplomaScanFile", "Не выбран файл скана документа об образовании для загрузки!"); } } if (!model.IsVolga) { if (model.WorkBookScanFile == null && string.IsNullOrEmpty(mt.WorkBookScanAttachmentFilename)) { ModelState.AddModelError("WorkBookScanFile", "Не выбран файл скана трудовой книжки/заявления для загрузки!"); } } if (model.PersonalDataProcessingScanFile == null && string.IsNullOrEmpty(mt.PersonalDataProcessingScanAttachmentFilename)) { ModelState.AddModelError("PersonalDataProcessingScanFile", "Не выбран файл скана для загрузки!"); } if (model.InfoValidityScanFile == null && string.IsNullOrEmpty(mt.InfoValidityScanAttachmentFilename)) { ModelState.AddModelError("InfoValidityScanFile", "Не выбран файл скана для загрузки!"); } } return ModelState.IsValid; }
public ActionResult ScanOriginalDocuments(ScanOriginalDocumentsModel model) { string error = String.Empty; string SPPath = AuthenticationService.CurrentUser.Id.ToString(); if (model.DeleteAttachmentId != 0) { if (((AuthenticationService.CurrentUser.UserRole == UserRole.PersonnelManager) && !EmploymentBl.IsUnlimitedEditAvailable()) || AuthenticationService.CurrentUser.UserRole == UserRole.ConsultantOutsourcing) { ModelState.AddModelError("ErrorMessage", "У вас нет прав для редактирования данных!"); model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); } else { DeleteAttacmentModel modelDel = new DeleteAttacmentModel { Id = model.DeleteAttachmentId }; EmploymentBl.DeleteAttachment(modelDel); model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); ModelState.AddModelError("ErrorMessage", "Файл удален!"); } } else { ModelState.Clear(); //кадровик не может менять список документов после выгрузки кандидата в 1С if (model.SendTo1C.HasValue) { //model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); ModelState.AddModelError("ErrorMessage", "Кандидат выгружен в 1С! Любые изменения на данной страницы не возможны!"); } else { if (AuthenticationService.CurrentUser.UserRole == UserRole.PersonnelManager && !EmploymentBl.IsUnlimitedEditAvailable()) { //model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); ModelState.AddModelError("ErrorMessage", "У вас нет прав для редактирования данных!"); } else { if (ValidateModel(model)) { string str = model.IsAgree ? "Данные сохранены!" : "Файл загружен!"; EmploymentBl.SaveScanOriginalDocumentsModelAttachments(model, out error); //model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); ModelState.AddModelError("ErrorMessage", string.IsNullOrEmpty(error) ? str : error); } else { //так как при использования вкладок, страницу приходится перезагружать с потерей данных, то передаем модель с библиотекой ошибок через переменную сессии //model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); } } } model = EmploymentBl.GetScanOriginalDocumentsModel(model.UserId); } if (Session["ScanOriginalDocumentsM" + SPPath] != null) Session.Remove("ScanOriginalDocumentsM" + SPPath); if (Session["ScanOriginalDocumentsM" + SPPath] == null) Session.Add("ScanOriginalDocumentsM" + SPPath, model); if (Session["ScanOriginalDocumentsMS" + SPPath] != null) Session.Remove("ScanOriginalDocumentsMS" + SPPath); if (Session["ScanOriginalDocumentsMS" + SPPath] == null) { ModelStateDictionary mst = ModelState; Session.Add("ScanOriginalDocumentsMS" + 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=0"); else return model.IsFinal && !EmploymentBl.IsUnlimitedEditAvailable() ? View("ScanOriginalDocumentsReadOnly", model) : View(model); }