public static PropertyDeclarationSyntax AddValidationAttributeFromSchemaFormatIfRequired(this PropertyDeclarationSyntax propertyDeclaration, OpenApiSchema schema) { if (schema == null) { throw new ArgumentNullException(nameof(schema)); } if (!string.IsNullOrEmpty(schema.Format)) { return(schema.Format.ToLower(CultureInfo.CurrentCulture) switch { OpenApiFormatTypeConstants.Uuid => propertyDeclaration, OpenApiFormatTypeConstants.Date => propertyDeclaration, OpenApiFormatTypeConstants.Time => propertyDeclaration, OpenApiFormatTypeConstants.Timestamp => propertyDeclaration, OpenApiFormatTypeConstants.DateTime => propertyDeclaration, OpenApiFormatTypeConstants.Byte => propertyDeclaration, OpenApiFormatTypeConstants.Int32 => propertyDeclaration, OpenApiFormatTypeConstants.Int64 => propertyDeclaration, OpenApiFormatTypeConstants.Email => propertyDeclaration.AddValidationAttributeEmail(schema), OpenApiFormatTypeConstants.Uri => propertyDeclaration.AddValidationAttribute(new UrlAttribute()), _ => throw new NotImplementedException($"Schema Format '{schema.Format}' must be implemented.") });