65 lines
2.3 KiB
C#
65 lines
2.3 KiB
C#
using System.Linq;
|
|
using JD.EngineLogger.Models;
|
|
using JD.EngineLogger.Providers;
|
|
using JD.Remoting;
|
|
using Plume.ErrorList.Model;
|
|
using Plume.Interfaces.Logging;
|
|
using LogEntry = JD.EngineLogger.Models.LogEntry;
|
|
|
|
namespace JD.EngineLogger
|
|
{
|
|
public class EngineLoggerPlugin : Plugin
|
|
{
|
|
/// <inheritdoc />
|
|
public EngineLoggerPlugin(ILoggerManager loggerManager) :
|
|
base("WarningTool_Plugin")
|
|
{
|
|
RegisterHandler("E2T_addWarning", OnAddWarning);
|
|
RegisterHandler("E2T_allWarnings", OnReceivedAllWarnings);
|
|
RegisterHandler("E2T_clear", OnReceivedClearWarnings);
|
|
RegisterHandler("E2T_log", OnReceivedLog);
|
|
RegisterHandler("E2T_colorSettings", OnReceivedColorSettings);
|
|
OutputProvider = new OutputProvider(loggerManager);
|
|
ErrorListProvider = new ErrorListProvider(loggerManager);
|
|
}
|
|
|
|
public ErrorListProvider ErrorListProvider { get; }
|
|
|
|
public OutputProvider OutputProvider { get; }
|
|
|
|
private void OnReceivedColorSettings(IBlob blob)
|
|
{
|
|
|
|
}
|
|
|
|
private void OnReceivedLog(IBlob blob)
|
|
{
|
|
LogEntry.TryLoadFromBlob(blob, out var logEntry);
|
|
var outputEntry = logEntry.ToOutputEntry();
|
|
OutputProvider.OnLogEntryReceived(outputEntry);
|
|
ErrorListProvider.OnLogEntryReceived(logEntry.ToErrorListEntry());
|
|
}
|
|
|
|
private void OnReceivedClearWarnings(IBlob blob)
|
|
{
|
|
ErrorListProvider.OnClear();
|
|
}
|
|
|
|
private void OnReceivedAllWarnings(IBlob blob)
|
|
{
|
|
WarningEntry[] warnings = WarningEntry.LoadMultipleFromBlob(blob).ToArray();
|
|
ILogEntry[] errorListEntries = warnings.Select(x => x.ToErrorListEntry()).Cast<ILogEntry>().ToArray();
|
|
ErrorListProvider.OnLogEntryReceived(errorListEntries);
|
|
|
|
var outputEntries = warnings.Select(x => x.ToOutputEntry()).Cast<Plume.Output.Model.ILogEntry>().ToArray();
|
|
OutputProvider.OnLogEntryReceived(outputEntries);
|
|
}
|
|
|
|
private void OnAddWarning(IBlob blob)
|
|
{
|
|
var warning = WarningEntry.LoadFromBlob(blob);
|
|
ErrorListProvider.OnLogEntryReceived(warning.ToErrorListEntry());
|
|
OutputProvider.OnLogEntryReceived(warning.ToOutputEntry());
|
|
}
|
|
}
|
|
}
|