コード例 #1
0
ファイル: SignUpValidator.cs プロジェクト: RomanNure/GoTrip
        public SignUpValidator(Entry login, Entry password, Entry passwordConfirm, Entry email, ValidationHandler <Entry> validHandler, ValidationHandler <Entry> invalidHandler)
        {
            FieldValidationHandler <Entry> LoginValidation = new FieldValidationHandler <Entry>(
                Login => Login.Text != null && UserFieldsPatterns.LOGIN_PATTERN.IsMatch(Login.Text),
                invalidHandler, validHandler);

            FieldValidationHandler <Entry> PasswordValidation = new FieldValidationHandler <Entry>(
                Password => Password.Text != null && UserFieldsPatterns.PASSWORD_PATTERN.IsMatch(Password.Text),
                invalidHandler, validHandler);

            FieldValidationHandler <Entry> PasswordConfirmValidation = new FieldValidationHandler <Entry>(
                PasswordConfirm => PasswordConfirm.Text != null && UserFieldsPatterns.PASSWORD_PATTERN.IsMatch(PasswordConfirm.Text) && PasswordConfirm.Text == password.Text,
                invalidHandler, validHandler);

            FieldValidationHandler <Entry> EmailValidation = new FieldValidationHandler <Entry>(
                Email => Email.Text != null && UserFieldsPatterns.EMAIL_PATTERN.IsMatch(Email.Text),
                invalidHandler, validHandler);

            Constants.Callback <Entry> SubscribeEvents = T =>
            {
                T.Unfocused   += (sender, e) => ValidateId(GetId(sender));
                T.TextChanged += (sender, e) => ValidateId(GetId(sender));
            };

            Add <Entry>(LoginValidation, login, SubscribeEvents);
            Add <Entry>(PasswordValidation, password, SubscribeEvents);
            Add <Entry>(PasswordConfirmValidation, passwordConfirm, SubscribeEvents);
            Add <Entry>(EmailValidation, email, SubscribeEvents);
        }
コード例 #2
0
        public LogInValidator(Entry login, Entry password, ValidationHandler <Entry> validHandler, ValidationHandler <Entry> invalidHandler)
        {
            FieldValidationHandler <Entry> LoginValidation = new FieldValidationHandler <Entry>(
                Login => Login.Text != null && UserFieldsPatterns.LOGIN_PATTERN.IsMatch(Login.Text),
                invalidHandler, validHandler);

            FieldValidationHandler <Entry> PasswordValidation = new FieldValidationHandler <Entry>(
                Password => Password.Text != null && UserFieldsPatterns.PASSWORD_PATTERN.IsMatch(Password.Text),
                invalidHandler, validHandler);

            Constants.Callback <Entry> SubscribeEvents = T =>
            {
                T.Unfocused   += (sender, e) => ValidateId(GetId(sender));
                T.TextChanged += (sender, e) => ValidateId(GetId(sender));
            };

            Add <Entry>(LoginValidation, login, SubscribeEvents);
            Add <Entry>(PasswordValidation, password, SubscribeEvents);
        }
コード例 #3
0
        public EditProfileValidator(Entry firstName, Entry lastName, Entry phone, ValidationHandler <Entry> validHandler, ValidationHandler <Entry> invalidHandler)
        {
            FieldValidationHandler <Entry> FirstNameValidation = new FieldValidationHandler <Entry>(
                FirstName => FirstName.Text != null && UserFieldsPatterns.FIRST_NAME_PATTERN.IsMatch(FirstName.Text),
                invalidHandler, validHandler);

            FieldValidationHandler <Entry> LastNameValidation = new FieldValidationHandler <Entry>(
                LastName => LastName.Text != null && UserFieldsPatterns.LAST_NAME_PATTERN.IsMatch(LastName.Text),
                invalidHandler, validHandler);

            FieldValidationHandler <Entry> PhoneValidation = new FieldValidationHandler <Entry>(
                Phone => Phone.Text != null && UserFieldsPatterns.PHONE_PATTERN.IsMatch(Phone.Text),
                invalidHandler, validHandler);

            Constants.Callback <Entry> SubscribeEvents = T =>
            {
                T.Unfocused   += (sender, e) => ValidateId(GetId(sender));
                T.TextChanged += (sender, e) => ValidateId(GetId(sender));
            };

            Add <Entry>(FirstNameValidation, firstName, SubscribeEvents);
            Add <Entry>(LastNameValidation, lastName, SubscribeEvents);
            Add <Entry>(PhoneValidation, phone, SubscribeEvents);
        }
コード例 #4
0
        public int Add <T>(FieldValidationHandler <T> validationHandler, T validated, Constants.Callback <T> callback)
        {
            if (Registry.ContainsKey(validated))
            {
                return(-1);
            }

            Validation.Add(++id, () => validationHandler.Validate(validated));
            Registry.Add(validated, id);
            callback(validated);

            return(id);
        }