1234567891011121314151617181920212223242526 |
- using System;
- using Microsoft.AspNetCore.Mvc.ModelBinding;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Logging;
- namespace Jellyfin.Api.ModelBinders;
- /// <summary>
- /// Nullable enum model binder provider.
- /// </summary>
- public class NullableEnumModelBinderProvider : IModelBinderProvider
- {
- /// <inheritdoc />
- 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<ILogger<NullableEnumModelBinder>>();
- return new NullableEnumModelBinder(logger);
- }
- }
|