mirror of
https://github.com/9ParsonsB/Pulsar.git
synced 2025-04-05 17:39:39 -04:00
32 lines
1.3 KiB
C#
32 lines
1.3 KiB
C#
namespace Pulsar.Utils;
|
|
|
|
public static class ErrorReporter
|
|
{
|
|
public static void ShowErrorPopup(string title, List<(string error, JsonObject detail)> errorList)
|
|
{
|
|
// Limit number of errors displayed.
|
|
StringBuilder displayMessage = new();
|
|
displayMessage.AppendLine($"{errorList.Count} error{(errorList.Count > 1 ? "s" : string.Empty)} encountered.");
|
|
var firstFiveErrors = errorList.Take(Math.Min(5, errorList.Count)).Select(e => e.error);
|
|
displayMessage.AppendJoin(Environment.NewLine, firstFiveErrors);
|
|
displayMessage.AppendLine();
|
|
displayMessage.Append("Full error details logged to ObservatoryErrorLog file in your documents folder.");
|
|
|
|
//TODO: Winform error popup
|
|
|
|
// Log entirety of errors out to file.
|
|
var timestamp = DateTime.Now.ToString("G");
|
|
StringBuilder errorLog = new();
|
|
foreach (var error in errorList)
|
|
{
|
|
errorLog.AppendLine($"[{timestamp}]:");
|
|
errorLog.AppendLine($"{error.error} - {error.detail.ToJsonString()}");
|
|
errorLog.AppendLine();
|
|
}
|
|
|
|
var docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
|
File.AppendAllText(docPath + Path.DirectorySeparatorChar + "ObservatoryErrorLog.txt", errorLog.ToString());
|
|
|
|
errorList.Clear();
|
|
}
|
|
} |