From c2ff7b8106ff1022e410aadceadf049f507653cb Mon Sep 17 00:00:00 2001 From: Joe4evr Date: Sat, 17 Jun 2017 10:46:50 +0200 Subject: [PATCH] Refactor loops into local function --- src/Discord.Net.Commands/Info/CommandInfo.cs | 58 ++++++++------------ 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/src/Discord.Net.Commands/Info/CommandInfo.cs b/src/Discord.Net.Commands/Info/CommandInfo.cs index 61357675b..15d63d25a 100644 --- a/src/Discord.Net.Commands/Info/CommandInfo.cs +++ b/src/Discord.Net.Commands/Info/CommandInfo.cs @@ -68,49 +68,39 @@ namespace Discord.Commands { services = services ?? EmptyServiceProvider.Instance; - foreach (IGrouping preconditionGroup in Module.Preconditions.GroupBy(p => p.Group)) + async Task CheckGroups(IEnumerable preconditions, string type) { - if (preconditionGroup.Key == 0) + foreach (IGrouping preconditionGroup in preconditions.GroupBy(p => p.Group)) { - foreach (PreconditionAttribute precondition in preconditionGroup) + if (preconditionGroup.Key == 0) { - var result = await precondition.CheckPermissions(context, this, services).ConfigureAwait(false); - if (!result.IsSuccess) - return result; + foreach (PreconditionAttribute precondition in preconditionGroup) + { + var result = await precondition.CheckPermissions(context, this, services).ConfigureAwait(false); + if (!result.IsSuccess) + return result; + } } - } - else - { - var results = new List(); - foreach (PreconditionAttribute precondition in preconditionGroup) - results.Add(await precondition.CheckPermissions(context, this, services).ConfigureAwait(false)); + else + { + var results = new List(); + foreach (PreconditionAttribute precondition in preconditionGroup) + results.Add(await precondition.CheckPermissions(context, this, services).ConfigureAwait(false)); - if (!results.Any(p => p.IsSuccess)) - return PreconditionResult.FromError($"Module precondition group {preconditionGroup.Key} failed: {String.Join("\n", results.Select(r => r.ErrorReason))}."); + if (!results.Any(p => p.IsSuccess)) + return PreconditionResult.FromError($"{type} precondition group {preconditionGroup.Key} failed: {String.Join("\n", results.Select(r => r.ErrorReason))}."); + } } + return PreconditionResult.FromSuccess(); } - foreach (IGrouping preconditionGroup in Preconditions.GroupBy(p => p.Group)) - { - if (preconditionGroup.Key == 0) - { - foreach (PreconditionAttribute precondition in preconditionGroup) - { - var result = await precondition.CheckPermissions(context, this, services).ConfigureAwait(false); - if (!result.IsSuccess) - return result; - } - } - else - { - var results = new List(); - foreach (PreconditionAttribute precondition in preconditionGroup) - results.Add(await precondition.CheckPermissions(context, this, services).ConfigureAwait(false)); + var moduleResult = await CheckGroups(Module.Preconditions, "Module"); + if (!moduleResult.IsSuccess) + return moduleResult; - if (!results.Any(p => p.IsSuccess)) - return PreconditionResult.FromError($"Command precondition group {preconditionGroup.Key} failed: {String.Join("\n", results.Select(r => r.ErrorReason))}."); - } - } + var commandResult = await CheckGroups(Preconditions, "Command"); + if (!commandResult.IsSuccess) + return commandResult; return PreconditionResult.FromSuccess(); }