1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-04-20 00:43:36 +03:00

Do not give up if one option fails to reset, return an aggregate error containing every reset failure if needed

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Octol1ttle 2023-09-22 22:07:56 +05:00
parent 7e71893fe0
commit 9f5f82a972
Signed by: Octol1ttle
GPG key ID: B77C34313AEE1FFF

View file

@ -287,13 +287,17 @@ public class SettingsCommandGroup : CommandGroup
private async Task<Result> ResetAllSettingsAsync(JsonNode cfg, IUser currentUser,
CancellationToken ct = default)
{
foreach (var option in AllOptions)
var failedResults = new List<Result>();
foreach (var resetResult in AllOptions.Select(option => option.Reset(cfg)))
{
var resetResult = option.Reset(cfg);
if (!resetResult.IsSuccess)
{
return Result.FromError(resetResult.Error);
failedResults.AddIfFailed(resetResult);
}
var errors = failedResults.AggregateErrors();
if (!errors.IsSuccess)
{
return errors;
}
var embed = new EmbedBuilder().WithSmallTitle(Messages.AllSettingsReset, currentUser)