Exemplo n.º 1
0
        public JsonSchemaValidationException Validate <T>(JsonSchemaValidationContext context, T o)
        {
            if (o == null)
            {
                return(new JsonSchemaValidationException(context, "null"));
            }

            var count = GenericCounter <T> .Count(o);

            if (count == 0)
            {
                return(new JsonSchemaValidationException(context, "empty"));
            }

            if (MaxItems.HasValue && count > MaxItems.Value)
            {
                return(new JsonSchemaValidationException(context, "maxOtems"));
            }

            if (MinItems.HasValue && count < MinItems.Value)
            {
                return(new JsonSchemaValidationException(context, "minItems"));
            }

            return(null);
        }
Exemplo n.º 2
0
        public JsonSchemaValidationException Validate <T>(JsonSchemaValidationContext context, T o)
        {
            if (o == null)
            {
                return(new JsonSchemaValidationException(context, "null"));
            }

            var count = GenericCounter <T> .Count(o);

            // Empty array is valid

            /*if (count == 0)
             * {
             *  return new JsonSchemaValidationException(context, "empty");
             * }*/

            if (MaxItems.HasValue && count > MaxItems.Value)
            {
                return(new JsonSchemaValidationException(context, "maxOtems"));
            }

            if (MinItems.HasValue && count < MinItems.Value)
            {
                return(new JsonSchemaValidationException(context, "minItems"));
            }

            if (Items == null)
            {
                return(null);               // There are no json schema for items, success
            }
            var         v    = Items.Validator;
            var         t    = o.GetType();
            IEnumerable iter = null;

            if (t.IsArray)
            {
                iter = o as Array;
            }
            else if (t.GetIsGenericList())
            {
                iter = o as IList;
            }
            else
            {
                return(new JsonSchemaValidationException(context, "non iterable object"));
            }

            foreach (var e in iter)
            {
                var ex = v.Validate(context, e);
                if (ex != null)
                {
                    return(ex);
                }
            }

            ;

            return(null);
        }
Exemplo n.º 3
0
        private static void GenericTypeInitialization()
        {
            // static
            //GenericCounter<string>.Increment();
            //GenericCounter<string>.Increment();
            //GenericCounter<string>.Display();
            //GenericCounter<int>.Display();
            //GenericCounter<int>.Increment();
            //GenericCounter<int>.Display();

            // instance
            GenericCounter <string> stringGenericCounter = new GenericCounter <string>();

            stringGenericCounter.IncrementInstance();
            stringGenericCounter.IncrementInstance();
            stringGenericCounter.IncrementInstance();
            stringGenericCounter.DisplayInstance();

            GenericCounter <int> intGenericCounter = new GenericCounter <int>();

            intGenericCounter.IncrementInstance();
            intGenericCounter.DisplayInstance();
        }
Exemplo n.º 4
0
 private bool IsCounterWithInflation(GenericCounter counter)
 {
     return(counter.Inflation > 0);
 }