protected IOpenApiAny GetOpenApiPropertyDefault()

in src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/Visitors/TypeVisitor.cs [322:373]


        protected IOpenApiAny GetOpenApiPropertyDefault<T>(OpenApiPropertyAttribute attr)
        {
            var @default = attr.Default;
            if (@default.IsNullOrDefault())
            {
                return null;
            }

            if (typeof(T) == typeof(short))
            {
                return new OpenApiInteger((short) @default);
            }

            if (typeof(T) == typeof(int))
            {
                return new OpenApiInteger((int) @default);
            }

            if (typeof(T) == typeof(byte))
            {
                return new OpenApiInteger(Convert.ToInt32(@default));
            }

            if (typeof(T) == typeof(long))
            {
                return new OpenApiLong((long) @default);
            }

            if (@default is ushort)
            {
                return new OpenApiInteger(Convert.ToInt16(@default));
            }

            if (@default is uint)
            {
                return new OpenApiInteger(Convert.ToInt32(@default));
            }

            if (@default is ulong)
            {
                return new OpenApiLong(Convert.ToInt64(@default));
            }

            if (typeof(T) == typeof(string) && @default.GetType().IsEnumType())
            {
                var @enum = (Enum)Convert.ChangeType(@default, typeof(Enum));

                return new OpenApiString((string) EnumExtensions.ToDisplayName(@enum));
            }

            return new OpenApiString((string) @default);
        }