using CSharpFunctionalExtensions; namespace NftFaucetRadzen.Utils; public static class ResultWrapper { public static Result Wrap(Action action) { try { action(); return Result.Success(); } catch (Exception e) { return Result.Failure(e.Message); } } public static Result Wrap(Func func) { try { return func(); } catch (Exception e) { return Result.Failure(e.Message); } } public static async Task Wrap(Func func) { try { var task = func(); await task; return Result.Success(); } catch (Exception e) { return Result.Failure(e.Message); } } public static async Task> Wrap(Func> func) { try { var task = func(); return await task; } catch (Exception e) { return Result.Failure(e.Message); } } public static Task Wrap(Task task) => Wrap(() => task); public static Task> Wrap(Task task) => Wrap(() => task); }