public ActionResult CreateCandidate(CreateCandidateModel model) { string error = string.Empty; if (model.IsSP) { model = EmploymentBl.GetCreateCandidateModel(model); if (model.PostUserLinks.Count == 0) ModelState.AddModelError("UserLinkId", "Нет доступных вакансий в выбранном подразделении!"); model.IsSP = false; } else { if (ValidateModel(model)) { model.UserId = EmploymentBl.CreateCandidate(model, out error); //ViewBag.Error = error; } if (!string.IsNullOrEmpty(error)) { ViewBag.Error = error; //ModelState.AddModelError("DepartmentId", error); } } if (ModelState.Count != 0) model = EmploymentBl.GetCreateCandidateModel(model); return View(model); }
protected bool ValidateModel(CreateCandidateModel model) { const int minimumAge = 14; int numberOfFilledFields = 0; numberOfFilledFields += /*string.IsNullOrEmpty(model.PassportData) ? 0 :*/ 1;//Номер паспорта больше не нужен, он ушёл в прошлое и про него забыли, пусть вместо него будет 1. numberOfFilledFields += string.IsNullOrEmpty(model.SNILS) ? 0 : 1; numberOfFilledFields += model.DateOfBirth.HasValue ? 1 : 0; if (string.IsNullOrEmpty(model.Surname) || string.IsNullOrWhiteSpace(model.Surname)) ModelState.AddModelError("Surname", "Заполните ФИО кандидата!"); else { if (model.Surname.Trim().Length == 0) ModelState.AddModelError("Surname", "Заполните ФИО кандидата!"); } if (!model.UserLinkId.HasValue || model.UserLinkId.Value == 0) ModelState.AddModelError("UserLinkId", "Выберте штатную единицу!"); if (model.DepartmentId == 0) ModelState.AddModelError("DepartmentId", "Выберите структурное подразделение!"); if (model.PersonnelId == 0) ModelState.AddModelError("PersonnelId", "Выберите сотрудника отдела кадров!"); if ((AuthenticationService.CurrentUser.UserRole & UserRole.PersonnelManager) > 0) { if (!model.OnBehalfOfManagerId.HasValue || model.OnBehalfOfManagerId == 0) ModelState.AddModelError("OnBehalfOfManagerId", "Выберите руководителя!"); } if (numberOfFilledFields < 2) { ModelState.AddModelError(string.Empty, "Необходимо заполнить хотя бы 2 поля личных данных, кроме ФИО."); } if (model.DateOfBirth > DateTime.Now.AddYears(-minimumAge)) { ModelState.AddModelError("DateOfBirth", "Некорректная дата рождения."); } if (!model.PlanRegistrationDate.HasValue) ModelState.AddModelError("PlanRegistrationDate", "Укажите планируемую дату приема!"); //if (string.IsNullOrEmpty(model.PyrusNumber) || string.IsNullOrWhiteSpace(model.PyrusNumber)) // ModelState.AddModelError("PyrusNumber", "Укажите номер задачи в системе Pyrus!"); //else //{ // try // { // Convert.ToInt32(model.PyrusNumber); // } // catch // { // ModelState.AddModelError("PyrusNumber", "Номер задачи в системе Пайрус должен содержать только цифры!"); // } //} return ModelState.IsValid; }