Example #1
0
        public VacancyValidator(IJobPositionRepository jobPositionRepository, ITeamRepository teamRepository)
        {
            RuleFor(m => m.Form).NotNull().WithMessage(Messages.NotNull)
            .SetValidator(new FormValidator());

            RuleFor(m => m.Status).Null()
            .WithMessage("Нельзя задавать статус вакансии.");

            RuleFor(m => m.JobPositionId).NotNull()
            .WithMessage(Messages.NotNull)
            .DependentRules(() =>
            {
                RuleFor(m => m.JobPositionId.Value)
                .MustAsync((id, token) => jobPositionRepository.Exists(id))
                .WithMessage("Должности с Id '{PropertyValue}' не существует.");
            });

            RuleFor(m => m.TeamId).NotNull()
            .WithMessage(Messages.NotNull)
            .DependentRules(() =>
            {
                RuleFor(m => m.TeamId.Value)
                .MustAsync((id, token) => teamRepository.Exists(id))
                .WithMessage("Команды с Id '{PropertyValue}' не существует.");
            });
            ;

            RuleFor(m => m.JobsNumber).NotNull()
            .WithMessage(Messages.NotNull);
        }
Example #2
0
        public SearchInterviewsValidator(IJobPositionRepository jobPositionRepository, ITeamRepository teamRepository)
        {
            Guard.AgainstNullArgument(nameof(jobPositionRepository), jobPositionRepository);
            Guard.AgainstNullArgument(nameof(teamRepository), teamRepository);

            RuleFor(s => s.JobPositionId)
            .MustAsync((id, token) => jobPositionRepository.Exists(id.Value))
            .When(s => s.JobPositionId.HasValue)
            .WithMessage(s => $"Должности с Id '{s.JobPositionId}' не существует.");

            RuleFor(s => s.TeamId)
            .MustAsync((id, token) => teamRepository.Exists(id.Value))
            .When(s => s.TeamId.HasValue)
            .WithMessage(s => $"Команды с Id '{s.JobPositionId}' не существует.");

            RuleFor(s => s.FromCorrectAnswersCount)
            .Must(number => number > 0)
            .When(s => s.FromCorrectAnswersCount.HasValue)
            .WithMessage("{PropertyName} не может быть меньше нуля.");

            RuleFor(s => s.ToCorrectAnswersCount)
            .Must(number => number > 0)
            .When(s => s.FromCorrectAnswersCount.HasValue)
            .WithMessage("{PropertyName} не может быть меньше нуля.");
        }
 public GetJobPositionValidator(IJobPositionRepository jobPositionRepository)
 {
     RuleFor(g => g.JobPositionId)
     .NotNull()
     .WithMessage(Messages.NotNull)
     .DependentRules(() =>
     {
         RuleFor(g => g.JobPositionId)
         .MustAsync((id, token) => jobPositionRepository.Exists(id.Value))
         .WithMessage(g => $"Должности с Id '{g.JobPositionId}' не существует.");
     });
 }
Example #4
0
        public UpdateJobPositionValidator(IJobPositionRepository jobPositionRepository)
        {
            RuleFor(u => u.JobPosition).NotNull()
            .DependentRules(() =>
            {
                RuleFor(u => u.JobPosition.Id)
                .NotNull()
                .WithMessage(Messages.NotNull)
                .DependentRules(() =>
                {
                    RuleFor(u => u.JobPosition.Id)
                    .MustAsync((id, token) => jobPositionRepository.Exists(id.Value))
                    .WithMessage("Должности с Id '{PropertyValue}' не существуют.");
                });

                RuleFor(u => u.JobPosition).SetValidator(new JobPositionValidator())
                .DependentRules(() =>
                {
                    RuleFor(u => u.JobPosition)
                    .MustAsync(async(jobPosition, token) => !(await jobPositionRepository.Exists(jobPosition.Title, jobPosition.Id)))
                    .WithMessage(u => $"Должность с таким названием '{u.JobPosition.Title}' уже существует.");
                });
            });
        }
Example #5
0
 public CreateJobPositionValidator(IJobPositionRepository jobPositionRepository)
 {
     RuleFor(p => p.JobPosition).NotNull()
     .DependentRules(() =>
     {
         RuleFor(p => p.JobPosition.Id).Null();
         RuleFor(p => p.JobPosition).SetValidator(new JobPositionValidator())
         .DependentRules(() =>
         {
             RuleFor(c => c.JobPosition.Title)
             .MustAsync(async(title, token) => !(await jobPositionRepository.Exists(title)))
             .WithMessage("Нельзя добавить должность с таким же именем.");
         });
     });
 }