コード例 #1
0
        protected virtual bool ValidateInputParameter(object[] parameterInfos, ref IList <EntityValidationResult> validateResults)
        {
            bool flag = true;

            foreach (var parameterInfo in parameterInfos)
            {
                if (parameterInfo == null)
                {
                    continue;
                }

                var tempValidationProvider = ValidationFactory.Create();

                var internalValidateEntity = new InternalValidateEntity(parameterInfo as IAggregateRoot);

                var customerValidator = tempValidationProvider.GetEntityValidator(internalValidateEntity);

                var tempEntityValidationContext = new EntityValidationContext(internalValidateEntity, new ValidationContext(internalValidateEntity.EntityValue, null, new Dictionary <object, object>()));

                var results = customerValidator.Validate(tempEntityValidationContext);

                var oldResult = validateResults.Where(pre => pre.Entry == internalValidateEntity.EntityValue).FirstOrDefault();
                if (oldResult == null)
                {
                    continue;
                }

                validateResults.Remove(oldResult);

                validateResults.Add(results);

                flag = results.IsValid;

                if (!flag)
                {
                    break;
                }
            }

            return(flag);
        }
コード例 #2
0
        public override EntityValidationResult Validate(object value, EntityValidationContext entityValidationContext)
        {
            if (entityValidationContext == null)
            {
                throw new ArgumentNullException("entityValidationContext", "EntityValidationContext not provided.");
            }

            if (value != null)
            {
                if (CachedValidationFunc == null)
                {
                    CachedValidationFunc = Parser.Parse(entityValidationContext.ObjectType, Expression);
                }
                if (!CachedValidationFunc(entityValidationContext.ObjectInstance))
                {
                    return
                        (new EntityValidationResult(FormatErrorMessage(entityValidationContext.DisplayName, Expression)));
                }
            }

            return(EntityValidationResult.Success());
        }
コード例 #3
0
        public override EntityValidationResult Validate(object value, EntityValidationContext entityValidationContext)
        {
            if (entityValidationContext == null)
            {
                throw new ArgumentNullException("entityValidationContext", "EntityValidationContext not provided.");
            }

            var isEmpty = value is string && string.IsNullOrWhiteSpace((string)value);

            if (value == null || (isEmpty && !AllowEmptyStrings))
            {
                if (CachedValidationFunc == null)
                {
                    CachedValidationFunc = Parser.Parse(entityValidationContext.ObjectType, Expression);
                }
                if (CachedValidationFunc(entityValidationContext.ObjectInstance))
                {
                    return
                        (new EntityValidationResult(FormatErrorMessage(entityValidationContext.DisplayName, Expression)));
                }
            }

            return(EntityValidationResult.Success());
        }
コード例 #4
0
 public abstract EntityValidationResult Validate(object value, EntityValidationContext entityValidationContext);
コード例 #5
0
 /// <summary>
 /// Async Validation for Insert new Entity
 /// </summary>
 /// <param name="ent">Entity to Add</param>
 /// <param name="c">Custom Validation Context</param>
 /// <returns>Task</returns>
 protected override Task ValidatePreInsert(TestData ent, EntityValidationContext c)
 {
     return(Task.CompletedTask);
 }