Răsfoiți Sursa

add IAsyncDisposable to DisplayPreferencesManager

Properly dispose dbcontext
Add IDisposableAnalyzer to Jellyfin.Server.Implementations
cvium 1 an în urmă
părinte
comite
1009836a79

+ 4 - 0
Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj

@@ -8,6 +8,10 @@
 
   <!-- Code analysers-->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
+    <PackageReference Include="IDisposableAnalyzers">
+      <PrivateAssets>all</PrivateAssets>
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
+    </PackageReference>
     <PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers">
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>

+ 8 - 1
Jellyfin.Server.Implementations/Users/DisplayPreferencesManager.cs

@@ -4,6 +4,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Threading.Tasks;
 using Jellyfin.Data.Entities;
 using MediaBrowser.Controller;
 using Microsoft.EntityFrameworkCore;
@@ -13,7 +14,7 @@ namespace Jellyfin.Server.Implementations.Users
     /// <summary>
     /// Manages the storage and retrieval of display preferences through Entity Framework.
     /// </summary>
-    public class DisplayPreferencesManager : IDisplayPreferencesManager
+    public sealed class DisplayPreferencesManager : IDisplayPreferencesManager, IAsyncDisposable
     {
         private readonly JellyfinDbContext _dbContext;
 
@@ -97,5 +98,11 @@ namespace Jellyfin.Server.Implementations.Users
         {
             _dbContext.SaveChanges();
         }
+
+        /// <inheritdoc />
+        public async ValueTask DisposeAsync()
+        {
+            await _dbContext.DisposeAsync().ConfigureAwait(false);
+        }
     }
 }