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(); } }
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(); } }
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(); } }