mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-04-29 10:39:53 +03:00
Apply official naming guidelines to Octobot (#306)
1. The root namespace was changed from `Octobot` to `TeamOctolings.Octobot`: > DO prefix namespace names with a company name to prevent namespaces from different companies from having the same name. 2. `Octobot.cs` was renamed to `Program.cs`: > DO NOT use the same name for a namespace and a type in that namespace. 3. `IOption`, `Option` were renamed to `IGuildOption` and `GuildOption` respectively: > DO NOT introduce generic type names such as Element, Node, Log, and Message. 4. `Utility` was moved out of the `Services` namespace. It didn't belong there anyway 5. `Program` static fields were moved to `Utility` 6. Localisation files were moved back to the project source files. Looks like this fixed `Message.Designer.cs` code generation --------- Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
parent
19fadead91
commit
793afd0e06
61 changed files with 447 additions and 462 deletions
40
TeamOctolings.Octobot/Extensions/CollectionExtensions.cs
Normal file
40
TeamOctolings.Octobot/Extensions/CollectionExtensions.cs
Normal file
|
@ -0,0 +1,40 @@
|
|||
using Remora.Results;
|
||||
|
||||
namespace TeamOctolings.Octobot.Extensions;
|
||||
|
||||
public static class CollectionExtensions
|
||||
{
|
||||
public static TResult? MaxOrDefault<TSource, TResult>(
|
||||
this IEnumerable<TSource> source, Func<TSource, TResult> selector)
|
||||
{
|
||||
var list = source.ToList();
|
||||
return list.Count > 0 ? list.Max(selector) : default;
|
||||
}
|
||||
|
||||
public static void AddIfFailed(this List<Result> list, Result result)
|
||||
{
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
list.Add(result);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return an appropriate result for a list of failed results. The list must only contain failed results.
|
||||
/// </summary>
|
||||
/// <param name="list">The list of failed results.</param>
|
||||
/// <returns>
|
||||
/// A successful result if the list is empty, the only Result in the list, or <see cref="AggregateError" />
|
||||
/// containing all results from the list.
|
||||
/// </returns>
|
||||
/// <exception cref="InvalidOperationException"></exception>
|
||||
public static Result AggregateErrors(this List<Result> list)
|
||||
{
|
||||
return list.Count switch
|
||||
{
|
||||
0 => Result.Success,
|
||||
1 => list[0],
|
||||
_ => new AggregateError(list.Cast<IResult>().ToArray())
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue