Exemple #1
0
        public static IEnumerable <IValidator> CreateValidators(IField field, FieldValidatorFactory createFieldValidator)
        {
            Guard.NotNull(field, nameof(field));

            var visitor = new DefaultFieldValueValidatorsFactory(createFieldValidator);

            return(field.Accept(visitor));
        }
        public override CommandExecutionResult Execute(string answerValue, CommandModel model = null)
        {
            var question = model.Data.As <Question>();

            var validators = FieldValidatorFactory.CreateFieldValidators(question);

            foreach (var validator in validators)
            {
                var result = validator.Validate(answerValue);

                if (result.IsValid == false)
                {
                    return(CurrentScreen(question, result));
                }
            }

            question.Answer.Value = answerValue;

            return(NextScreen(question));
        }
Exemple #3
0
 private DefaultFieldValueValidatorsFactory(FieldValidatorFactory createFieldValidator)
 {
     this.createFieldValidator = createFieldValidator;
 }
 public IEnumerable <IValidator> CreateValueValidators(ValidationContext context, IField field, FieldValidatorFactory createFieldValidator)
 {
     return(DefaultFieldValueValidatorsFactory.CreateValidators(field, createFieldValidator));
 }
 public IEnumerable <IValidator> CreateFieldValidators(ValidationContext context, IField field, FieldValidatorFactory createFieldValidator)
 {
     if (field is IField <UIFieldProperties> )
     {
         yield return(NoValueValidator.Instance);
     }
 }
Exemple #6
0
 public IEnumerable <IValidator> CreateContentValidators(ValidationContext context, FieldValidatorFactory createFieldValidator)
 {
     foreach (var validatorTag in ValidatorTags(context.Schema.Properties.Tags))
     {
         yield return(new CompositeUniqueValidator(validatorTag, contentRepository));
     }
 }
        public IEnumerable <IValidator> CreateValueValidators(ValidationContext context, IField field, FieldValidatorFactory createFieldValidator)
        {
            if (field is IField <AssetsFieldProperties> assetsField)
            {
                var checkAssets = new CheckAssets(async ids =>
                {
                    return(await assetRepository.QueryAsync(context.AppId.Id, new HashSet <Guid>(ids)));
                });

                yield return(new AssetsValidator(assetsField.Properties, checkAssets));
            }

            if (field is IField <ReferencesFieldProperties> referencesField)
            {
                var checkReferences = new CheckContentsByIds(async ids =>
                {
                    return(await contentRepository.QueryIdsAsync(context.AppId.Id, ids, SearchScope.All));
                });

                yield return(new ReferencesValidator(referencesField.Properties.SchemaIds, checkReferences));
            }

            if (field is IField <NumberFieldProperties> numberField && numberField.Properties.IsUnique)
            {
                var checkUniqueness = new CheckUniqueness(async filter =>
                {
                    return(await contentRepository.QueryIdsAsync(context.AppId.Id, context.SchemaId.Id, filter));
                });

                yield return(new UniqueValidator(checkUniqueness));
            }

            if (field is IField <StringFieldProperties> stringField && stringField.Properties.IsUnique)
            {
                var checkUniqueness = new CheckUniqueness(async filter =>
                {
                    return(await contentRepository.QueryIdsAsync(context.AppId.Id, context.SchemaId.Id, filter));
                });

                yield return(new UniqueValidator(checkUniqueness));
            }
        }