using System; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace Jellyfin.Api.ModelBinders; /// /// Nullable enum model binder provider. /// public class NullableEnumModelBinderProvider : IModelBinderProvider { /// public IModelBinder? GetBinder(ModelBinderProviderContext context) { var nullableType = Nullable.GetUnderlyingType(context.Metadata.ModelType); if (nullableType is null || !nullableType.IsEnum) { // Type isn't nullable or isn't an enum. return null; } var logger = context.Services.GetRequiredService>(); return new NullableEnumModelBinder(logger); } }