Пример #1
0
 protected override void DataValidationChanged(AvaloniaProperty property, IValidationStatus status)
 {
     if (property == TextProperty)
     {
         UpdateValidationState(status);
     }
 }
 /// <summary>
 /// Creates a new status with the updated information.
 /// </summary>
 /// <param name="status">The updated status information.</param>
 /// <returns>The new validation status.</returns>
 public ObjectValidationStatus UpdateValidationStatus(IValidationStatus status)
 {
     var newStatus = new Dictionary<Type, IValidationStatus>(currentValidationStatus ??
                                                         new Dictionary<Type, IValidationStatus>());
     newStatus[status.GetType()] = status;
     return new ObjectValidationStatus(newStatus);
 }
Пример #3
0
        /// <summary>
        /// Creates a new status with the updated information.
        /// </summary>
        /// <param name="status">The updated status information.</param>
        /// <returns>The new validation status.</returns>
        public ObjectValidationStatus UpdateValidationStatus(IValidationStatus status)
        {
            var newStatus = new Dictionary <Type, IValidationStatus>(currentValidationStatus ??
                                                                     new Dictionary <Type, IValidationStatus>());

            newStatus[status.GetType()] = status;
            return(new ObjectValidationStatus(newStatus));
        }
Пример #4
0
 protected virtual void SendValidationStatus(IValidationStatus status)
 {
     //Even if elements only bound to sub-values, send validation changes along so they will be surfaced to the UI level.
     if (_subject != null)
     {
         _subject.OnNext(status);
     }
     else
     {
         Next?.SendValidationStatus(status);
     }
 }
Пример #5
0
        public void Handle(IValidationStatus message)
        {
            if (!Convert.ToInt32(TestingRequestSagaStates.ValidationStarted).Equals(Data.CurrentState) &&
                !Convert.ToInt32(TestingRequestSagaStates.ValidationInProgress).Equals(Data.CurrentState))
            {
                return;
            }

            Data.CurrentState       = Convert.ToInt32(TestingRequestSagaStates.ValidationInProgress);
            Data.ValidationProgress = message.Progress;

            NotifyOfSagaStateChangeProgress((TestingRequestSagaStates)Data.CurrentState, Data.ValidationProgress);
        }
Пример #6
0
        public void Setting_Non_Validating_Does_Not_Trigger_Validation()
        {
            var inpcAccessorPlugin = new InpcPropertyAccessorPlugin();
            var validatorPlugin    = new IndeiValidationPlugin();
            var data                 = new Data();
            var accessor             = inpcAccessorPlugin.Start(new WeakReference(data), nameof(data.NonValidated), _ => { });
            IValidationStatus status = null;
            var validator            = validatorPlugin.Start(new WeakReference(data), nameof(data.NonValidated), accessor, s => status = s);

            validator.SetValue(5, BindingPriority.LocalValue);

            Assert.Null(status);
        }
Пример #7
0
        public void Setting_Validating_Property_To_Invalid_Value_Returns_Failed_ValidationStatus()
        {
            var inpcAccessorPlugin = new InpcPropertyAccessorPlugin();
            var validatorPlugin    = new IndeiValidationPlugin();
            var data                 = new Data();
            var accessor             = inpcAccessorPlugin.Start(new WeakReference(data), nameof(data.MustBePositive), _ => { });
            IValidationStatus status = null;
            var validator            = validatorPlugin.Start(new WeakReference(data), nameof(data.MustBePositive), accessor, s => status = s);

            validator.SetValue(-5, BindingPriority.LocalValue);

            Assert.False(status.IsValid);
        }
Пример #8
0
        public IValidationStatus Validate <T>(T instance)
        {
            var validator = FindValidator <T>();

            if (validator == null)
            {
                var errorMessage = string.Format("Properly validator is not registered for type {0}", typeof(T).Name);
                throw new ProperlyValidatorIsNotRegisteredException(errorMessage);
            }

            ValidationResult  result           = validator.Validate(instance);
            IValidationStatus validationStatus = BuildValidationStatus <T>(result);

            return(validationStatus);
        }
Пример #9
0
 /// <summary>
 /// Called whenever a priority level validation state changes.
 /// </summary>
 /// <param name="priorityLevel">The priority level of the changed entry.</param>
 /// <param name="validationStatus">The validation status.</param>
 public void LevelValidation(PriorityLevel priorityLevel, IValidationStatus validationStatus)
 {
     _owner.DataValidationChanged(this, validationStatus);
 }
Пример #10
0
 public ValidationException(string message, IValidationStatus validationStatus)
     : base(message)
 {
     ValidationValidationStatus = validationStatus;
 }
Пример #11
0
 /// <summary>
 /// Updates the validation status of the current object.
 /// </summary>
 /// <param name="status">The new validation status.</param>
 protected void UpdateValidationState(IValidationStatus status)
 {
     ValidationStatus = ValidationStatus.UpdateValidationStatus(status);
 }
Пример #12
0
 /// <summary>
 /// Called when the validation state on a tracked property is changed.
 /// </summary>
 /// <param name="property">The property whose validation state changed.</param>
 /// <param name="status">The new validation state.</param>
 protected virtual void DataValidationChanged(AvaloniaProperty property, IValidationStatus status)
 {
 }
Пример #13
0
        /// <inheritdoc/>
        void IPriorityValueOwner.DataValidationChanged(PriorityValue sender, IValidationStatus status)
        {
            var property = sender.Property;

            DataValidationChanged(property, status);
        }
Пример #14
0
 /// <summary>
 /// Invoked when an entry in <see cref="Bindings"/> reports validation status.
 /// </summary>
 /// <param name="entry">The entry that completed.</param>
 /// <param name="validationStatus">The validation status.</param>
 public void Validation(PriorityBindingEntry entry, IValidationStatus validationStatus)
 {
     _owner.LevelValidation(this, validationStatus);
 }
Пример #15
0
 /// <summary>
 /// Sends the validation status to the callback specified in construction.
 /// </summary>
 /// <param name="status">The validation status.</param>
 protected void SendValidationCallback(IValidationStatus status)
 {
     _callback?.Invoke(status);
 }
 protected override void DataValidationChanged(AvaloniaProperty property, IValidationStatus status)
 {
     if (property == ValidationTestProperty)
     {
         UpdateValidationState(status);
     }
 }
Пример #17
0
 /// <inheritdoc/>
 protected override void DataValidationChanged(AvaloniaProperty property, IValidationStatus status)
 {
     base.DataValidationChanged(property, status);
     ValidationStatus.UpdateValidationStatus(status);
 }
Пример #18
0
 public ValidationException(string message, IValidationStatus validationStatus)
     : base(message)
 {
     ValidationValidationStatus = validationStatus;
 }
Пример #19
0
 /// <summary>
 /// Invoked when an entry in <see cref="Bindings"/> reports validation status.
 /// </summary>
 /// <param name="entry">The entry that completed.</param>
 /// <param name="validationStatus">The validation status.</param>
 public void Validation(PriorityBindingEntry entry, IValidationStatus validationStatus)
 {
     _owner.LevelValidation(this, validationStatus);
 }
Пример #20
0
 /// <summary>
 /// Called whenever a priority level validation state changes.
 /// </summary>
 /// <param name="priorityLevel">The priority level of the changed entry.</param>
 /// <param name="validationStatus">The validation status.</param>
 public void LevelValidation(PriorityLevel priorityLevel, IValidationStatus validationStatus)
 {
     _owner.DataValidationChanged(this, validationStatus);
 }
 /// <summary>
 /// Sends the validation status to the callback specified in construction.
 /// </summary>
 /// <param name="status">The validation status.</param>
 protected void SendValidationCallback(IValidationStatus status)
 {
     _callback?.Invoke(status);
 }