示例#1
0
        public void AddError(string message, object details = null)
        {
            Check.NotNull(message, nameof(message));

            var target = ValidationTarget.ForError(Step, Target, null, null);
            var error  = new ValidationError(Validator, target, message, details);

            AddError(error);
        }
示例#2
0
        public ValidationResult GetResult(
            ValidationStep step,
            IViewModel target,
            IVMPropertyDescriptor targetProperty = null
            )
        {
            var t = ValidationTarget.ForInstance(step, target, targetProperty);

            var request = t.CreateValidationRequest();
            var result  = t.VM.ExecuteValidationRequest(request);

            var collectionResult = GetCollectionItemResults(t);

            return(ValidationResult.Join(result, collectionResult));
        }
示例#3
0
        private ValidationResult GetCollectionItemResults(IInstanceValidationTarget item)
        {
            var result = ValidationResult.Valid;

            foreach (var ownerCollection in item.VM.Kernel.OwnerCollections)
            {
                CollectionResult collectionResult = ValidateCollectionIfNotInCache(
                    ValidationTarget.ForCollection(
                        item.Step,
                        ownerCollection,
                        item.Property
                        )
                    );

                var itemResult = collectionResult.GetResultFor(item.VM);
                result = ValidationResult.Join(result, itemResult);
            }

            return(result);
        }