Example #1
0
        private void NotifyValidationStatusChanged(ValidationStatus status, IEnumerable <string> messages = null)
        {
            ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(status, messages));
            StatusChanged.InvokeAsync(status);

            ParentValidations?.NotifyValidationStatusChanged(this);
        }
Example #2
0
        public ValidationResultProxy Validate()
        {
            var result = OnValidate();

            ValidationStatusChanged?.Invoke(result.IsValid);
            return(new ValidationResultProxy(result));
        }
        /// <summary>
        /// Runs the validation process.
        /// </summary>
        public ValidationStatus Validate()
        {
            if (UsePattern && patternRegex != null)
            {
                var matchStatus = patternRegex.IsMatch(inputComponent.ValidationValue?.ToString() ?? string.Empty)
                    ? ValidationStatus.Success
                    : ValidationStatus.Error;

                if (Status != matchStatus)
                {
                    Status = matchStatus;

                    ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(Status));
                }
            }
            else if (EditContext != null && hasFieldIdentifier)
            {
                Validating?.Invoke();

                var messages = new ValidationMessageStore(EditContext);

                EditContext.ValidateField(messages, fieldIdentifier);

                Status           = messages[fieldIdentifier].Any() ? ValidationStatus.Error : ValidationStatus.Success;
                LastErrorMessage = Status == ValidationStatus.Error ? string.Join("; ", messages[fieldIdentifier]) : null;

                ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(Status, LastErrorMessage));
            }
            else
            {
                var validatorHandler = Validator;

                if (validatorHandler != null)
                {
                    Validating?.Invoke();

                    var validatorEventArgs = new ValidatorEventArgs(inputComponent.ValidationValue);

                    validatorHandler(validatorEventArgs);

                    if (Status != validatorEventArgs.Status)
                    {
                        Status           = validatorEventArgs.Status;
                        LastErrorMessage = Status == ValidationStatus.Error ? validatorEventArgs.ErrorText : null;

                        ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(Status, LastErrorMessage));
                    }
                }
            }

            return(Status);
        }
        /// <inheritdoc/>
        public void NotifyValidationStatusChanged(ValidationStatus status, IEnumerable <string> messages = null)
        {
            // raise events only if status or message is changed to prevent unnecessary re-renders
            if (Status != status || (Messages?.AreEqual(messages) == false))
            {
                Status   = status;
                Messages = messages;

                ValidationStatusChanged?.Invoke(this, new(status, messages) );
                InvokeAsync(() => StatusChanged.InvokeAsync(status));

                ParentValidations?.NotifyValidationStatusChanged(this);
            }
        }
Example #5
0
 public void RaiseValidationStatus(bool validationSuccessful)
 {
     ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(validationSuccessful));
 }
        private void NotifyValidationStatusChanged(ValidationStatus status, string message = null)
        {
            ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(status, message));

            ParentValidations?.NotifyValidationStatusChanged();
        }
 /// <summary>
 /// Clears the validation status.
 /// </summary>
 public void Clear()
 {
     Status = ValidationStatus.None;
     ValidationStatusChanged?.Invoke(this, new ValidationStatusChangedEventArgs(Status));
 }