| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- using System;
 
- using System.Globalization;
 
- using System.Threading.Tasks;
 
- using Microsoft.AspNetCore.Mvc.ModelBinding;
 
- using Microsoft.AspNetCore.Mvc.ModelBinding.Binders;
 
- using Microsoft.Extensions.Logging;
 
- namespace Jellyfin.Api.ModelBinders;
 
- /// <summary>
 
- /// DateTime model binder.
 
- /// </summary>
 
- public class LegacyDateTimeModelBinder : IModelBinder
 
- {
 
-     // Borrowed from the DateTimeModelBinderProvider
 
-     private const DateTimeStyles SupportedStyles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AllowWhiteSpaces;
 
-     private readonly DateTimeModelBinder _defaultModelBinder;
 
-     /// <summary>
 
-     /// Initializes a new instance of the <see cref="LegacyDateTimeModelBinder"/> class.
 
-     /// </summary>
 
-     /// <param name="loggerFactory">Instance of the <see cref="ILoggerFactory"/> interface.</param>
 
-     public LegacyDateTimeModelBinder(ILoggerFactory loggerFactory)
 
-     {
 
-         _defaultModelBinder = new DateTimeModelBinder(SupportedStyles, loggerFactory);
 
-     }
 
-     /// <inheritdoc />
 
-     public Task BindModelAsync(ModelBindingContext bindingContext)
 
-     {
 
-         var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
 
-         if (valueProviderResult.Values.Count == 1)
 
-         {
 
-             var dateTimeString = valueProviderResult.FirstValue;
 
-             // Mark Played Item.
 
-             if (DateTime.TryParseExact(dateTimeString, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var dateTime))
 
-             {
 
-                 bindingContext.Result = ModelBindingResult.Success(dateTime);
 
-             }
 
-             else
 
-             {
 
-                 return _defaultModelBinder.BindModelAsync(bindingContext);
 
-             }
 
-         }
 
-         return Task.CompletedTask;
 
-     }
 
- }
 
 
  |