瀏覽代碼

Convert DeleteUser to async

Patrick Barron 4 年之前
父節點
當前提交
76f61eb0d6

+ 2 - 2
Jellyfin.Api/Controllers/UserController.cs

@@ -133,11 +133,11 @@ namespace Jellyfin.Api.Controllers
         [Authorize(Policy = Policies.RequiresElevation)]
         [ProducesResponseType(StatusCodes.Status204NoContent)]
         [ProducesResponseType(StatusCodes.Status404NotFound)]
-        public ActionResult DeleteUser([FromRoute, Required] Guid userId)
+        public async Task<ActionResult> DeleteUser([FromRoute, Required] Guid userId)
         {
             var user = _userManager.GetUserById(userId);
             _sessionManager.RevokeUserTokens(user.Id, null);
-            _userManager.DeleteUser(userId);
+            await _userManager.DeleteUserAsync(userId).ConfigureAwait(false);
             return NoContent();
         }
 

+ 4 - 4
Jellyfin.Server.Implementations/Users/UserManager.cs

@@ -220,7 +220,7 @@ namespace Jellyfin.Server.Implementations.Users
         }
 
         /// <inheritdoc/>
-        public void DeleteUser(Guid userId)
+        public async Task DeleteUserAsync(Guid userId)
         {
             if (!_users.TryGetValue(userId, out var user))
             {
@@ -246,7 +246,7 @@ namespace Jellyfin.Server.Implementations.Users
                     nameof(userId));
             }
 
-            using var dbContext = _dbProvider.CreateContext();
+            await using var dbContext = _dbProvider.CreateContext();
 
             // Clear all entities related to the user from the database.
             if (user.ProfileImage != null)
@@ -258,10 +258,10 @@ namespace Jellyfin.Server.Implementations.Users
             dbContext.RemoveRange(user.Preferences);
             dbContext.RemoveRange(user.AccessSchedules);
             dbContext.Users.Remove(user);
-            dbContext.SaveChanges();
+            await dbContext.SaveChangesAsync().ConfigureAwait(false);
             _users.Remove(userId);
 
-            _eventManager.Publish(new UserDeletedEventArgs(user));
+            await _eventManager.PublishAsync(new UserDeletedEventArgs(user)).ConfigureAwait(false);
         }
 
         /// <inheritdoc/>

+ 2 - 1
MediaBrowser.Controller/Library/IUserManager.cs

@@ -93,7 +93,8 @@ namespace MediaBrowser.Controller.Library
         /// Deletes the specified user.
         /// </summary>
         /// <param name="userId">The id of the user to be deleted.</param>
-        void DeleteUser(Guid userId);
+        /// <returns>A task representing the deletion of the user.</returns>
+        Task DeleteUserAsync(Guid userId);
 
         /// <summary>
         /// Resets the password.