public ValidationResult Validate(JsonElement input, JsonElement source) { if (input.ValueKind != JsonValueKind.Array) { return(InputDataNotAnArrayResult()); } if (source.ValueKind != JsonValueKind.Array) { return(StoredDataNotAnArrayResult()); } var storedJsonObject = source.EnumerateArray().FirstOrDefault(); var result = InputDataArrayIsEmptyResult(); foreach (var inputJsonObject in input.EnumerateArray()) { result = _jsonObjectValidator.Validate(inputJsonObject, storedJsonObject); if (!result.IsValid) { break; } } return(result); }
/// <inheritdoc/> public void Validate(StoreModel input, StoreModel source) { _ = input ?? throw new ArgumentNullException(nameof(input)); _ = source ?? throw new ArgumentNullException(nameof(source)); var validationResult = input.Payload.ValueKind == JsonValueKind.Array ? _jsonArrayValidator.Validate(input.Payload, source.Payload) : _jsonObjectValidator.Validate(input.Payload, source.Payload); if (!validationResult.IsValid) { throw new ValidationException(validationResult.Errors); } }