コード例 #1
0
        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.")
                });