Пример #1
0
        private IObjectValidator GetValidator(IList <Book> books = null, IList <Publisher> publishers = null)
        {
            var builder = new ValidationBuilder <Book>();

            builder.RuleFor(book => book.ISBN)
            .Must(ISBNUtils.IsValid)
            .WithMessage("ISBN is not valid");
            builder.RuleFor(book => book.ISBN)
            .Must(isbn => publishers == null ||
                  publishers.Any(publisher => publisher.Id == ISBNUtils.GetPublisherId(isbn)))
            .WithMessage("Publisher that owns such ISBN does not exist")
            .Must(isbn => books == null ||
                  !books.Any(book => book != this && book.ISBN == isbn))
            .WithMessage("ISBN should be unique")
            .AllWhen(book => ISBNUtils.IsValid(book.ISBN));
            builder.RuleFor(book => book.Name)
            .NotEmpty()
            .WithMessage("Name can't be empty");
            builder.RuleFor(book => book.AgeRestriction)
            .NotEmpty()
            .WithMessage("Age Restriction can't be empty")
            .Matches(@"^\d+\+$")
            .WithMessage("Age Restriction has wrong format");

            return(builder.Build(this));
        }
Пример #2
0
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <SendGroupViewModel>();

            builder.RuleFor(vm => vm.RegOtdelenie).MyNotEmpty();
            builder.RuleFor(vm => vm.City).MyNotEmpty();
            builder.RuleFor(vm => vm.Depo).MyNotEmpty();
            builder.RuleFor(vm => vm.Uvolnenie).MyNotEmptyDat();
            builder.RuleFor(vm => vm.Poezd).MyNotEmpty();
            builder.RuleFor(vm => vm.Vagon).MyNotEmpty();

            builder.RuleFor(vm => vm.OtprDat).MyNotEmptyDat();
            builder.RuleFor(vm => vm.PribDat).MyNotEmptyDat();


            //.Matches(@"^\d{1,2}:d{2}$")
            builder.RuleFor(vm => vm.PribTime)
            .Must(IsValidTime)
            .WithMessage("{PropertyName} должно быть в формате ЧЧ:ММ");

            /*  builder.RuleFor(vm=>vm).NotEmpty()
             *    .When(vm => vm.Persons, persons => !persons.Any(pp=>pp.IsMain))
             *    .WithMessage("В группе должен быть старший");
             */
            builder.RuleFor(vm => vm.Vokzal).MyNotEmpty();
            ;//TODO .When(vm => UchZavedenie, uchZavedenie => !string.IsNullOrEmpty(uchZavedenie)).Between("1950", "2050");



            return(builder.Build(this));
        }
Пример #3
0
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <ParamViewModel>();

            builder.RuleFor(vm => vm.Radius).NotEmpty().WithMessage("Введите радиус, не оставляйте поле пустым");
            builder.RuleFor(vm => vm.TPolarization).NotEmpty().WithMessage("Введите теоретическую поляризуемость, не оставляйте поле пустым");
            builder.RuleFor(vm => vm.Speed).NotEmpty().WithMessage("Введите скорость, не оставляйте поле пустым");
            builder.RuleFor(vm => vm.MPolarization).NotNull().WithMessage("Введите измеренную поляризуемость, не оставляйте поле пустым");

            return(builder.Build(this));
        }
Пример #4
0
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <Publisher>();

            builder.RuleFor(publisher => publisher.Name)
            .NotEmpty()
            .WithMessage("Name can't be empty");
            builder.RuleFor(publisher => publisher.Address)
            .NotEmpty()
            .WithMessage("Address can't be empty");

            return(builder.Build(this));
        }
Пример #5
0
        private IObjectValidator GetValidator(IList <LiteratureType> literatureTypes = null)
        {
            var builder = new ValidationBuilder <LiteratureType>();

            builder.RuleFor(literatureType => literatureType.Name)
            .NotEmpty()
            .WithMessage("Name can't be empty");
            builder.RuleFor(literatureType => literatureType.Name)
            .Must(name => literatureTypes == null ||
                  !literatureTypes.Any(literatureType =>
                                       literatureType.Id != Id && literatureType.Name == name))
            .WithMessage("Name should be unique");

            return(builder.Build(this));
        }
Пример #6
0
        private IObjectValidator GetValidator()
        {
            var organizationBuilder = new ValidationBuilder <RiskCreatedDateViewModel>();

            organizationBuilder.RuleFor(x => x.Value).LessThan(DateTime.Now).WithMessage("Укажите корректную дату");
            return(organizationBuilder.Build(this /*методу нужна ЭТА ViewModel*/));// после созданных правил тут мы создаем саму инициализацию. Билдер сбилдся.
        }
Пример #7
0
            private IObjectValidator GetValidator()
            {
                var builder = new ValidationBuilder <InnerObject>();

                builder.RuleFor(vm => vm.Name)
                .NotEmpty();

                return(builder.Build(this));
            }
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <BaseSampleViewModel>();

            builder.RuleFor(vm => vm.Name)
            .NotEmpty()
            .MaxLength(16)
            .NotEqual("foo");

            builder.RuleFor(vm => vm.Surname)
            .Equal("foo");

            builder.RuleFor(vm => vm.PhoneNumber)
            .NotEmpty()
            .Matches(@"^\d{9,12}$");

            builder.RuleFor(vm => vm.Age)
            .NotNull()
            .Between(18, 35);

            return(builder.Build(this));
        }
Пример #9
0
        private IObjectValidator GetValidator(IList <Author> authors = null)
        {
            var builder = new ValidationBuilder <Author>();

            builder.RuleFor(author => author.FIO)
            .NotEmpty()
            .WithMessage("FIO can't be empty");
            builder.RuleFor(author => author.FIO)
            .Must(fio => authors == null || !authors.Any(author => author.Id != Id && author.FIO == fio &&
                                                         (author.Pseudonym == Pseudonym ||
                                                          string.IsNullOrWhiteSpace(author.Pseudonym) &&
                                                          string.IsNullOrWhiteSpace(Pseudonym))))
            .WithMessage("Pair of FIO and Pseudonym should be unique");
            builder.RuleFor(author => author.Pseudonym)
            .Must(pseudonym =>
                  authors == null || !authors.Any(author => author.Id != Id && author.FIO == FIO &&
                                                  (author.Pseudonym == pseudonym ||
                                                   string.IsNullOrWhiteSpace(author.Pseudonym) &&
                                                   string.IsNullOrWhiteSpace(pseudonym))))
            .WithMessage("Pair of FIO and Pseudonym should be unique");

            return(builder.Build(this));
        }
Пример #10
0
        private IObjectValidator GetValidator(IList <Publisher> publishers = null)
        {
            var builder = new ValidationBuilder <Publisher>();

            builder.RuleFor(publisher => publisher.Name)
            .NotEmpty()
            .WithMessage("Name can't be empty");
            builder.RuleFor(publisher => publisher.Address)
            .NotEmpty()
            .WithMessage("Address can't be empty");
            builder.RuleFor(publisher => publisher.Name)
            .Must(name => publishers == null || !publishers.Any(publisher =>
                                                                !publisher.EqualsPrimaryKey(this) && publisher.Name == name &&
                                                                publisher.Address == Address))
            .WithMessage("Pair of Name and Address should be unique");
            builder.RuleFor(publisher => publisher.Address)
            .Must(address => publishers == null || !publishers.Any(publisher =>
                                                                   !publisher.EqualsPrimaryKey(this) && publisher.Name == Name &&
                                                                   publisher.Address == address))
            .WithMessage("Pair of Name and Address should be unique");

            return(builder.Build(this));
        }
Пример #11
0
        private IObjectValidator GetValidator(IList <User> users = null)
        {
            var builder = new ValidationBuilder <User>();

            builder.RuleFor(user => user.Login)
            .NotEmpty()
            .WithMessage("Login can't be empty")
            .Must(login => users == null || !users.Any(user => !user.EqualsPrimaryKey(this) && user.Login == login))
            .WithMessage("This login is already used")
            .Must(login => string.IsNullOrWhiteSpace(login) ||
                  Regex.IsMatch(login.Trim().ToLower(),
                                @"^[à-ÿ0-9a-z¸`!@#$%^&*()_\-=+{}\[\];:'"",<.>/?\\*¹~|\s]{6,50}$"))
            .WithMessage(
                "Login must contain from 6 to 50 characters shown on the classic Russian-English keyboard layout");
            builder.RuleFor(user => user.Password)
            .NotEmpty()
            .WithMessage("Password can't be empty");
            builder.RuleFor(user => user.Role)
            .Must(role => new[] { "ADMIN", "USER" }.Contains(role))
            .WithMessage("Such role does not exist");

            return(builder.Build(this));
        }
Пример #12
0
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <InnerValidatableObjectAndCollectionViewModel>();


            builder.RuleFor(vm => vm.InnerObjectValue)
            .NotNull()
            .ModelIsValid();

            builder.RuleForCollection(vm => vm.InnerObjectsCollection)
            .NotNull()
            .Count(3, 5)
            .CollectionElementsAreValid(i => i.Validator?.IsValid != false);


            return(builder.Build(this));
        }
Пример #13
0
        private IObjectValidator GetValidator()
        {
            var personBuilder = new ValidationBuilder <UpdatePersViewModel>();

            personBuilder.RuleFor(x => x.OwnerName).NotEmpty().WithMessage("Поле не может быть пустым");
            personBuilder.RuleFor(x => x.OwnerName).MinLength(2).WithMessage("Поле должно содержать минимум два символа");
            personBuilder.RuleFor(x => x.OwnerName).Matches(@"[A-Za-zА-Яа-яЁё].").WithMessage("Поле должно минимум две буквы");

            personBuilder.RuleFor(x => x.HeadName).NotEmpty().WithMessage("Поле не может быть пустым");
            personBuilder.RuleFor(x => x.HeadName).MinLength(2).WithMessage("Поле должно содержать минимум два символа");
            personBuilder.RuleFor(x => x.HeadName).Matches(@"[A-Za-zА-Яа-яЁё].").WithMessage("Поле должно минимум две буквы");



            personBuilder.RuleFor(x => x.SelectedCountry).Must(BeAValidCountry).WithMessage("Укажите страну");
            return(personBuilder.Build(this));
        }
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <LocalizationViewModel>();

            builder.RuleFor(vm => vm.PhoneNumber)
            .NotEmpty()
            .When(vm => Email, email => string.IsNullOrEmpty(email) == true)
            .WithLocalizedMessage(nameof(Resources.Default.PhoneNumberOrEmailRequired))
            .Matches(@"^\d{11}$")
            .WithLocalizedMessage(nameof(Resources.Default.PhoneNumberFormat));

            builder.RuleFor(vm => vm.Email)
            .NotEmpty()
            .When(vm => PhoneNumber, phoneNumber => string.IsNullOrEmpty(phoneNumber) == true)
            .WithLocalizedMessage(nameof(Resources.Default.PhoneNumberOrEmailRequired))
            .Must(IsValidEmail)
            .WithLocalizedMessage(Resources.Additional.ResourceManager, nameof(Resources.Additional.NotValidEmail));


            builder.RuleFor(vm => vm.Password)
            .NotEmpty()
            .MinLength(8, ValidationMessageType.Warning)
            .WithLocalizedMessage(nameof(Resources.Default.SecurePassword));

            builder.RuleFor(vm => vm.ConfirmPassword)
            .Equal(vm => vm.Password);


            builder.RuleFor(vm => vm.Country)
            .NotEmpty()
            .AllWhen(vm => vm.AdditionalInformation);

            builder.RuleFor(vm => vm.City)
            .NotEmpty()
            .AllWhen(vm => vm.AdditionalInformation);


            return(builder.Build(this));
        }
        private IObjectValidator GetValidator()
        {
            var builder = new ValidationBuilder <DependentPropertiesViewModel>();

            builder.RuleFor(vm => vm.PhoneNumber)
            .NotEmpty()
            .When(vm => Email, email => string.IsNullOrEmpty(email) == true)
            .WithMessage("You need to specify a phone or email")
            .Matches(@"^\d{11}$")
            .WithMessage("Phone number must contain 11 digits");

            builder.RuleFor(vm => vm.Email)
            .NotEmpty()
            .When(vm => PhoneNumber, phoneNumber => string.IsNullOrEmpty(phoneNumber) == true)
            .WithMessage("You need to specify a phone or email")
            .Must(IsValidEmail)
            .WithMessage("Not valid email");


            builder.RuleFor(vm => vm.Password)
            .NotEmpty()
            .MinLength(8, ValidationMessageType.Warning)
            .WithMessage("For a secure password, enter more than {MinLength} characters. You entered {TotalLength} characters");

            builder.RuleFor(vm => vm.ConfirmPassword)
            .Equal(vm => vm.Password);


            builder.RuleFor(vm => vm.Country)
            .NotEmpty()
            .AllWhen(vm => vm.AdditionalInformation);

            builder.RuleFor(vm => vm.City)
            .NotEmpty()
            .AllWhen(vm => vm.AdditionalInformation);


            return(builder.Build(this));
        }
Пример #16
0
        private IObjectValidator GetValidator()
        {
            var RegistratuonBuilder = new ValidationBuilder <RegistrationViewModel>();

            RegistratuonBuilder.RuleFor(x => x.LoginUser).Matches(@"^[^\s][a-zA-Zа-яА-Я-0-9\s]*$").WithMessage("Пробелы в начале строки не допустимы");
            RegistratuonBuilder.RuleFor(x => x.LoginUser).NotEmpty().WithMessage("Поле не может быть пустым");
            RegistratuonBuilder.RuleFor(x => x.LoginUser).MinLength(3).WithMessage("Минимум пять символов!");

            RegistratuonBuilder.RuleFor(x => x.Department).Matches(@"^[^\s][a-zA-Zа-яА-Я-0-9\s]*$").WithMessage("Пробелы в начале строки не допустимы");
            RegistratuonBuilder.RuleFor(x => x.Department).NotEmpty().WithMessage("Поле не может быть пустым");
            RegistratuonBuilder.RuleFor(x => x.Department).MinLength(2).WithMessage("Минимум пять символов!");

            RegistratuonBuilder.RuleFor(x => x.Password).Matches(@"^[^\s][a-zA-Zа-яА-Я-0-9\s]*$").WithMessage("Пробелы в начале строки не допустимы");
            RegistratuonBuilder.RuleFor(x => x.Password).NotEmpty().WithMessage("Поле не может быть пустым");
            RegistratuonBuilder.RuleFor(x => x.Password).MinLength(5).WithMessage("Минимум пять символов!");

            RegistratuonBuilder.RuleFor(x => x.RepeatedPassword).Matches(@"^[^\s][a-zA-Zа-яА-Я-0-9\s]*$").WithMessage("Пробелы в начале строки не допустимы");
            RegistratuonBuilder.RuleFor(x => x.RepeatedPassword).NotEmpty().WithMessage("Поле не может быть пустым");
            RegistratuonBuilder.RuleFor(x => x.RepeatedPassword).MinLength(5).WithMessage("Минимум пять символов!");
            RegistratuonBuilder.RuleFor(x => x.RepeatedPassword).Must(BeAValidRepeatedPassword).WithMessage("Пароли не совпадают!");

            return(RegistratuonBuilder.Build(this));
        }