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); }
/// <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)); }
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); } }
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); }
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); }
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); }
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); }
/// <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); }
public ValidationException(string message, IValidationStatus validationStatus) : base(message) { ValidationValidationStatus = validationStatus; }
/// <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); }
/// <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) { }
/// <inheritdoc/> void IPriorityValueOwner.DataValidationChanged(PriorityValue sender, IValidationStatus status) { var property = sender.Property; DataValidationChanged(property, status); }
/// <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); }
/// <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); } }
/// <inheritdoc/> protected override void DataValidationChanged(AvaloniaProperty property, IValidationStatus status) { base.DataValidationChanged(property, status); ValidationStatus.UpdateValidationStatus(status); }