public UpdateVacancyValidator( IVacancyRepository vacancyRepository, IComponentContext componentContext) { Guard.AgainstNullArgument(nameof(vacancyRepository), vacancyRepository); Guard.AgainstNullArgument(nameof(componentContext), componentContext); RuleFor(m => m.Vacancy).NotNull() .WithMessage(Messages.NotNull) .DependentRules(() => { RuleFor(m => m.Vacancy.Id).NotNull() .WithMessage(Messages.NotNull) .DependentRules(() => { RuleFor(m => m.Vacancy.Id) .MustAsync((id, token) => vacancyRepository.Exists(id.Value)) .WithMessage("Вакансии с id '{PropertyValue}' не существует."); RuleFor(m => m.Vacancy) .MustAsync(async(vacancy, token) => (await vacancyRepository.GetStatus(vacancy.Id.Value)) == VacancyStatusEntity.Draft) .WithMessage("Для изменения вакансия должна быть черновиком.") .MustAsync(async(vacancy, token) => (await vacancyRepository.Get(vacancy.Id.Value)).JobPositionId == vacancy.JobPositionId) .WithMessage("Нельзя изменять должность вакансии."); ; }); RuleFor(m => m.Vacancy) .SetValidator(componentContext.Resolve <VacancyValidator>()); }); }
public GetVacancyValidator(IVacancyRepository vacancyRepository) { RuleFor(m => m.VacancyId).NotNull() .WithMessage(Messages.NotNull) .DependentRules(() => { RuleFor(m => m.VacancyId) .MustAsync((id, token) => vacancyRepository.Exists(id.Value)); }); }
public GetVacancyValidator(IVacancyRepository vacancyRepository) { RuleFor(m => m.VacancyId).NotNull() .WithMessage(Messages.NotNull) .DependentRules(() => { RuleFor(m => m.VacancyId) .MustAsync((id, token) => vacancyRepository.Exists(id.Value)) .WithMessage("Вакансии с id '{PropertyValue}' не существует."); }); }
public OpenVacancyValidator(IVacancyRepository vacancyRepository) { RuleFor(m => m.VacancyId).NotNull() .WithMessage(Messages.NotNull) .DependentRules(() => { RuleFor(m => m.VacancyId) .MustAsync((id, token) => vacancyRepository.Exists(id.Value)) .WithMessage("Вакансии с id '{PropertyValue}' не существует.") .MustAsync(async(id, token) => (await vacancyRepository.GetStatus(id.Value)) == VacancyStatusEntity.Draft) .WithMessage("Вакансия должна быть черновиком."); }); }
public SetContactInformationValidator(IVacancyRepository vacancyRepository) { RuleFor(m => m.VacancyId).NotNull() .WithMessage(Messages.NotNull) .DependentRules(() => { RuleFor(m => m.VacancyId) .MustAsync((id, token) => vacancyRepository.Exists(id.Value)) .WithMessage("Вакансии с Id '{PropertyValue}' не существует."); }); RuleFor(m => m.Email).EmailAddress() .WithMessage("Email адрес невалидный."); RuleFor(m => m.Phone).Must(_validPhoneRegex.IsMatch) .WithMessage("Телефон невалидный."); RuleFor(m => m.TermsAgreed).Must(t => t == true) .WithMessage("Необходимо согласиться с правилами."); }