123456789101112131415161718192021222324252627 |
- 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 == 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);
- }
- }
- }
|