using Microsoft.AspNetCore.SignalR; using RobotNet10.ScriptEngine.Hubs; namespace RobotNet10.ScriptEngine.HubContexts; public class ConsoleHubContext(IHubContext hubContext) { private void Log(string level, string message, params string[] groups) { Task.Run(async Task? () => await hubContext.Clients.Groups([.. groups, "alls"]).SendAsync(level, message)).ConfigureAwait(false); } public void LogError(string message) => Log("Error", message); public void LogInfo(string message) => Log("Info", message); public void LogWarning(string message) => Log("Warning", message); public void LogErrorToTask(string name, string message) => Log("Error", message, $"task-{name}"); public void LogInfoToTask(string name, string message) => Log("Info", message, $"task-{name}"); public void LogWarningToTask(string name, string message) => Log("Warning", message, $"task-{name}"); public void LogErrorToMission(Guid missionId, string message) => Log("Error", message, $"mission-{missionId}"); public void LogInfoToMission(Guid missionId, string message) => Log("Info", message, $"mission-{missionId}"); public void LogWarningToMission(Guid missionId, string message) => Log("Warning", message, $"mission-{missionId}"); }