1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-04-30 19:19:54 +03:00

style: move root namespace to TeamOctolings.Octobot

This commit is contained in:
Octol1ttle 2024-05-16 18:11:01 +05:00
parent 19fadead91
commit 3e6240f4b8
Signed by: Octol1ttle
GPG key ID: B77C34313AEE1FFF
61 changed files with 421 additions and 441 deletions

View 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())
};
}
}