From 091e7ba14da0a77ff226a8ecbbe8c6547f584d45 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Tue, 9 Jul 2024 16:21:22 +0200 Subject: [PATCH] [backend] Refactor Task.ContinueWith(p => p.Result) calls to Task.ContinueWithResult --- .../Controllers/Web/UserController.cs | 2 +- .../Core/Extensions/TaskExtensions.cs | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/Iceshrimp.Backend/Controllers/Web/UserController.cs b/Iceshrimp.Backend/Controllers/Web/UserController.cs index dd870baf..36d07de2 100644 --- a/Iceshrimp.Backend/Controllers/Web/UserController.cs +++ b/Iceshrimp.Backend/Controllers/Web/UserController.cs @@ -94,7 +94,7 @@ public class UserController( .Paginate(pq, ControllerContext) .PrecomputeVisibilities(localUser) .ToListAsync() - .ContinueWith(n => n.Result.EnforceRenoteReplyVisibility()); + .ContinueWithResult(res => res.EnforceRenoteReplyVisibility()); return await noteRenderer.RenderMany(notes, localUser, Filter.FilterContext.Accounts); } diff --git a/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs b/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs index c794fa1f..b6e16eba 100644 --- a/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs +++ b/Iceshrimp.Backend/Core/Extensions/TaskExtensions.cs @@ -62,4 +62,54 @@ public static class TaskExtensions { return (await task).ToList(); } + + public static async Task ContinueWithResult(this Task task, Action continuation) + { + await task; + continuation(); + } + + public static async Task ContinueWithResult(this Task task, Func continuation) + { + await task; + return continuation(); + } + + public static async Task ContinueWithResult(this Task task, Action continuation) + { + continuation(await task); + } + + public static async Task ContinueWithResult( + this Task task, Func continuation + ) + { + return continuation(await task); + } + + public static async Task ContinueWithResult(this Task task, Func continuation) + { + await task; + await continuation(); + } + + public static async Task ContinueWithResult( + this Task task, Func> continuation + ) + { + await task; + return await continuation(); + } + + public static async Task ContinueWithResult(this Task task, Func continuation) + { + await continuation(await task); + } + + public static async Task ContinueWithResult( + this Task task, Func> continuation + ) + { + return await continuation(await task); + } } \ No newline at end of file