/// <inheritdoc />
        public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
        {
            var results = new List <ValidationResult>();

            if (ForeignKey.ForeignColumns.Count > 0)
            {
                var ctxt = new ValidationContext(ForeignKey, validationContext.Items);
                ctxt.InitializeServiceProvider(validationContext.GetService);
                ValidationUtilities.TryCollectResults(ctxt, ForeignKey, results);
            }
            else
            {
                if (string.IsNullOrEmpty(ForeignKey.Name))
                {
                    results.Add(new ValidationResult(ErrorMessages.ForeignKeyNameCannotBeNullOrEmpty));
                }

                if (string.IsNullOrEmpty(ForeignKey.ForeignTable))
                {
                    results.Add(new ValidationResult(ErrorMessages.ForeignTableNameCannotBeNullOrEmpty));
                }
            }

            return(results);
        }
示例#2
0
        public static ICollection <string> CollectErrors(params object[] items)
        {
            var result = new List <ValidationResult>();

            foreach (var item in items)
            {
                var context = new ValidationContext(item);
                ValidationUtilities.TryCollectResults(context, item, result);
            }

            return(result
                   .Where(x => x != ValidationResult.Success)
                   .Select(x => x.ErrorMessage).ToList());
        }
        /// <inheritdoc />
        public virtual IEnumerable <ValidationResult> Validate(IMigrationExpression expression)
        {
            var items   = new Dictionary <object, object>();
            var context = new ValidationContext(expression, items);

            if (_serviceProvider != null)
            {
                context.InitializeServiceProvider(_serviceProvider.GetService);
            }

            var result = new List <ValidationResult>();

            if (!ValidationUtilities.TryCollectResults(context, expression, result))
            {
                return(result);
            }

            return(Enumerable.Empty <ValidationResult>());
        }