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); }
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); }
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(); }
private bool IsCounterWithInflation(GenericCounter counter) { return(counter.Inflation > 0); }