Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
            }
        }