Пример #1
0
        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);
        }
Пример #2
0
        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;
        }