mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-01-31 09:09:00 +03:00
Octol1ttle
793afd0e06
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>
40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using Remora.Results;
|
|
|
|
namespace TeamOctolings.Octobot.Extensions;
|
|
|
|
public static class LoggerExtensions
|
|
{
|
|
/// <summary>
|
|
/// Checks if the <paramref name="result" /> has failed due to an error that has resulted from neither invalid user
|
|
/// input nor the execution environment and logs the error using the provided <paramref name="logger" />.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// This has special behavior for <see cref="ExceptionError" /> - its exception will be passed to the
|
|
/// <paramref name="logger" />
|
|
/// </remarks>
|
|
/// <param name="logger">The logger to use.</param>
|
|
/// <param name="result">The Result whose error check.</param>
|
|
/// <param name="message">The message to use if this result has failed.</param>
|
|
public static void LogResult(this ILogger logger, IResult result, string? message = "")
|
|
{
|
|
if (result.IsSuccess)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (result.Error is ExceptionError exe)
|
|
{
|
|
if (exe.Exception is TaskCanceledException)
|
|
{
|
|
return;
|
|
}
|
|
|
|
logger.LogError(exe.Exception, "{ErrorMessage}", message);
|
|
return;
|
|
}
|
|
|
|
logger.LogWarning("{UserMessage}{NewLine}{ResultErrorMessage}", message, Environment.NewLine,
|
|
result.Error.Message);
|
|
}
|
|
}
|