Example #1
0
        private static PropertyValidationOutcome ValidateStringFormat(ParameterDefinition schemaProperty, ParameterDefinition inputProperty, IssueLogger issues)
        {
            switch (schemaProperty.StringFormat())
            {
            case ExpectedStringFormat.Iso8601Date:
            {
                DateTimeOffset?output = inputProperty.OriginalValue.TryParseIso8601Date();
                if (!output.HasValue)
                {
                    issues.Error(ValidationErrorCode.InvalidDateTimeString, $"Invalid ISO 8601 date-time string in property: {schemaProperty.Name}: {inputProperty.OriginalValue}");
                    return(PropertyValidationOutcome.BadStringValue);
                }
                return(PropertyValidationOutcome.Ok);
            }

            case ExpectedStringFormat.AbsoluteUrl:
            {
                try
                {
                    new Uri(inputProperty.OriginalValue, UriKind.Absolute);
                    return(PropertyValidationOutcome.Ok);
                }
                catch (FormatException)
                {
                    issues.Error(ValidationErrorCode.InvalidUrlString, $"Invalid absolute URL value in property {schemaProperty.Name}: {inputProperty.OriginalValue}");
                    return(PropertyValidationOutcome.BadStringValue);
                }
            }

            case ExpectedStringFormat.EnumeratedValue:
            {
                if (!schemaProperty.IsValidEnumValue(inputProperty.OriginalValue))
                {
                    issues.Error(ValidationErrorCode.InvalidEnumeratedValueString, $"Invalid enumerated value in property {schemaProperty.Name}: {inputProperty.OriginalValue}");
                    return(PropertyValidationOutcome.BadStringValue);
                }
                return(PropertyValidationOutcome.Ok);
            }

            case ExpectedStringFormat.Generic:
                return(PropertyValidationOutcome.Ok);

            default:
                throw new NotImplementedException();
            }
        }
Example #2
0
        private static PropertyValidationOutcome ValidateStringFormat(ParameterDefinition schemaProperty, ParameterDefinition inputProperty, List <ValidationError> detectedErrorsCollection)
        {
            switch (schemaProperty.StringFormat())
            {
            case ExpectedStringFormat.Iso8601Date:
            {
                DateTimeOffset?output = inputProperty.OriginalValue.TryParseIso8601Date();
                if (!output.HasValue)
                {
                    detectedErrorsCollection.Add(new ValidationError(ValidationErrorCode.InvalidDateTimeString, null, "Invalid ISO 8601 date-time string in property: {1}: {0}", inputProperty.OriginalValue, schemaProperty.Name));
                    return(PropertyValidationOutcome.BadStringValue);
                }
                return(PropertyValidationOutcome.Ok);
            }

            case ExpectedStringFormat.AbsoluteUrl:
            {
                try
                {
                    Uri parsedUri = new Uri(inputProperty.OriginalValue, UriKind.Absolute);
                    return(PropertyValidationOutcome.Ok);
                }
                catch (FormatException)
                {
                    detectedErrorsCollection.Add(new ValidationError(ValidationErrorCode.InvalidUrlString, null, "Invalid absolute URL value in property {1}: {0}", inputProperty.OriginalValue, schemaProperty.Name));
                    return(PropertyValidationOutcome.BadStringValue);
                }
            }

            case ExpectedStringFormat.EnumeratedValue:
            {
                if (!schemaProperty.IsValidEnumValue(inputProperty.OriginalValue))
                {
                    detectedErrorsCollection.Add(new ValidationError(ValidationErrorCode.InvalidEnumeratedValueString, null, "Invalid enumerated value in property {1}: {0}", inputProperty.OriginalValue, schemaProperty.Name));
                    return(PropertyValidationOutcome.BadStringValue);
                }
                return(PropertyValidationOutcome.Ok);
            }

            case ExpectedStringFormat.Generic:
                return(PropertyValidationOutcome.Ok);

            default:
                throw new NotImplementedException();
            }
        }
Example #3
0
 private static PropertyValidationOutcome ValidateStringFormat(ParameterDefinition schemaProperty, ParameterDefinition inputProperty, List<ValidationError> detectedErrorsCollection)
 {
     switch (schemaProperty.StringFormat())
     {
         case ExpectedStringFormat.Iso8601Date:
             {
                 DateTimeOffset? output = inputProperty.OriginalValue.TryParseIso8601Date();
                 if (!output.HasValue)
                 {
                     detectedErrorsCollection.Add(new ValidationError(ValidationErrorCode.InvalidDateTimeString, null, "Invalid ISO 8601 date-time string in property: {1}: {0}", inputProperty.OriginalValue, schemaProperty.Name));
                     return PropertyValidationOutcome.BadStringValue;
                 }
                 return PropertyValidationOutcome.Ok;
             }
         case ExpectedStringFormat.AbsoluteUrl:
             {
                 try
                 {
                     new Uri(inputProperty.OriginalValue, UriKind.Absolute);
                     return PropertyValidationOutcome.Ok;
                 }
                 catch (FormatException)
                 {
                     detectedErrorsCollection.Add(new ValidationError(ValidationErrorCode.InvalidUrlString, null, "Invalid absolute URL value in property {1}: {0}", inputProperty.OriginalValue, schemaProperty.Name));
                     return PropertyValidationOutcome.BadStringValue;
                 }
             }
         case ExpectedStringFormat.EnumeratedValue:
             {
                 if (!schemaProperty.IsValidEnumValue(inputProperty.OriginalValue))
                 {
                     detectedErrorsCollection.Add(new ValidationError(ValidationErrorCode.InvalidEnumeratedValueString, null, "Invalid enumerated value in property {1}: {0}", inputProperty.OriginalValue, schemaProperty.Name));
                     return PropertyValidationOutcome.BadStringValue;
                 }
                 return PropertyValidationOutcome.Ok;
             }
         case ExpectedStringFormat.Generic:
             return PropertyValidationOutcome.Ok;
         default:
             throw new NotImplementedException();
     }
 }