Exemplo n.º 1
0
        /// <summary>
        /// Adds the field validation result.
        /// </summary>
        /// <param name="fieldValidationResult">The field validation result.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        public void AddFieldValidationResult(IFieldValidationResult fieldValidationResult)
        {
            Argument.IsNotNull("fieldValidationResult", fieldValidationResult);

            lock (_fieldValidations)
            {
                _fieldValidations.Add(fieldValidationResult);

                UpdateLastModificationStamp(DateTime.Now);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Removes the field validation result.
        /// </summary>
        /// <param name="fieldValidationResult">The field validation result.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        public void Remove(IFieldValidationResult fieldValidationResult)
        {
            Argument.IsNotNull("fieldValidationResult", fieldValidationResult);

            lock (_fieldValidations)
            {
                _fieldValidations.Remove(fieldValidationResult);

                UpdateLastModificationStamp(FastDateTime.Now);
            }
        }
        /// <summary>
        /// Adds the field validation result.
        /// <para />
        /// This method is great to add asynchronous validation.
        /// </summary>
        /// <param name="modelValidation">The model validation.</param>
        /// <param name="fieldValidationResult">The field validation result.</param>
        /// <param name="validate">if set to <c>true</c>, this method call will immediately force a call to validate the model.</param>
        public static void AddFieldValidationResult(this IModelValidation modelValidation, IFieldValidationResult fieldValidationResult, bool validate = false)
        {
            Argument.IsNotNull(() => modelValidation);
            Argument.IsNotNull(() => fieldValidationResult);

            EventHandler<ValidationEventArgs> validating = null;
            validating = (sender, e) =>
            {
                modelValidation.Validating -= validating;
                e.ValidationContext.AddFieldValidationResult(fieldValidationResult);
            };

            modelValidation.Validating += validating;

            if (validate)
            {
                modelValidation.Validate(true);
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Adds the field validation result.
        /// </summary>
        /// <param name="validatable">The validatable model.</param>
        /// <param name="fieldValidationResult">The field validation result.</param>
        /// <param name="validate">if set to <c>true</c> [validate].</param>
        public static void AddFieldValidationResult(this IValidatable validatable, IFieldValidationResult fieldValidationResult, bool validate = false)
        {
            Argument.IsNotNull("modelValidation", validatable);
            Argument.IsNotNull("fieldValidationResult", fieldValidationResult);

            EventHandler <ValidationEventArgs> validating = null;

            validating = (sender, e) =>
            {
                validatable.Validating -= validating;
                e.ValidationContext.AddFieldValidationResult(fieldValidationResult);
            };

            validatable.Validating += validating;

            if (validate)
            {
                validatable.Validate(true);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Sets the field validation result.
        /// </summary>
        /// <param name="validationResult">The field validation result.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
        protected void SetFieldValidationResult(IFieldValidationResult validationResult)
        {
            Argument.IsNotNull("validationResult", validationResult);

            if (string.IsNullOrEmpty(validationResult.Message))
            {
                return;
            }

            var previousValidations = _internalValidationContext.GetFieldValidations(validationResult.PropertyName);

            // First, check if the same error already exists
            bool alreadyExists = (from previousValidation in previousValidations
                                  where string.Compare(previousValidation.Message, validationResult.Message, StringComparison.Ordinal) == 0
                                  select previousValidation).Any();

            if (alreadyExists)
            {
                return;
            }

            _internalValidationContext.AddFieldValidationResult(validationResult);

            if (!IsValidating)
            {
                switch (validationResult.ValidationResultType)
                {
                case ValidationResultType.Warning:
                    NotifyWarningsChanged(validationResult.PropertyName, true);
                    break;

                case ValidationResultType.Error:
                    NotifyErrorsChanged(validationResult.PropertyName, true);
                    break;
                }
            }
        }
Exemplo n.º 6
0
 protected void SetFieldValidationResult(IFieldValidationResult validationResult)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 7
0
        /// <summary>
        /// Removes the field validation result.
        /// </summary>
        /// <param name="fieldValidationResult">The field validation result.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="fieldValidationResult"/> is <c>null</c>.</exception>
        public void RemoveFieldValidationResult(IFieldValidationResult fieldValidationResult)
        {
            Argument.IsNotNull("fieldValidationResult", fieldValidationResult);

            lock (_fieldValidations)
            {
                _fieldValidations.Remove(fieldValidationResult);

                UpdateLastModificationStamp(DateTime.Now);
            }
        }
Exemplo n.º 8
0
 public void RemoveFieldValidationResult(IFieldValidationResult fieldValidationResult)
 {
     Remove(fieldValidationResult);
 }
Exemplo n.º 9
0
 public void AddFieldValidationResult(IFieldValidationResult fieldValidationResult)
 {
     Add(fieldValidationResult);
 }
Exemplo n.º 10
0
        /// <summary>
        /// Sets the field validation result.
        /// </summary>
        /// <param name="validationResult">The field validation result.</param>
        /// <exception cref="ArgumentNullException">The <paramref name="validationResult"/> is <c>null</c>.</exception>
        protected void SetFieldValidationResult(IFieldValidationResult validationResult)
        {
            Argument.IsNotNull("validationResult", validationResult);

            if (string.IsNullOrEmpty(validationResult.Message))
            {
                return;
            }

            var previousValidations = _internalValidationContext.GetFieldValidations(validationResult.PropertyName);

            // First, check if the same error already exists
            bool alreadyExists = (from previousValidation in previousValidations
                                  where string.Compare(previousValidation.Message, validationResult.Message, StringComparison.Ordinal) == 0
                                  select previousValidation).Any();
            if (alreadyExists)
            {
                return;
            }

            _internalValidationContext.AddFieldValidationResult(validationResult);

            if (!IsValidating)
            {
                switch (validationResult.ValidationResultType)
                {
                    case ValidationResultType.Warning:
                        NotifyWarningsChanged(validationResult.PropertyName, true);
                        break;

                    case ValidationResultType.Error:
                        NotifyErrorsChanged(validationResult.PropertyName, true);
                        break;
                }
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Adds the field validation result.
        /// <para />
        /// This method is great to add asynchronous validation.
        /// </summary>
        /// <param name="modelValidation">The model validation.</param>
        /// <param name="fieldValidationResult">The field validation result.</param>
        /// <param name="validate">if set to <c>true</c>, this method call will immediately force a call to validate the model.</param>
        public static void AddFieldValidationResult(this IModelValidation modelValidation, IFieldValidationResult fieldValidationResult, bool validate = false)
        {
            Argument.IsNotNull(() => modelValidation);
            Argument.IsNotNull(() => fieldValidationResult);

            EventHandler <ValidationEventArgs> validating = null;

            validating = (sender, e) =>
            {
                modelValidation.Validating -= validating;
                e.ValidationContext.AddFieldValidationResult(fieldValidationResult);
            };

            modelValidation.Validating += validating;

            if (validate)
            {
                modelValidation.Validate(true);
            }
        }