public override async Task OnDisconnectedAsync(Exception exception) { WorkerManager.RemoveWorker(Context.ConnectionId); await Clients.All.SendAsync("Dashboard_WorkerList", new DashboardWorkerMessage() { AvailableWorkers = WorkerManager.Workers }); await base.OnDisconnectedAsync(exception); }
public async Task Register(List <BotProcess> bots) { await Clients.Caller.SendAsync("Register", WorkerManager.RegisterWorker(Context.ConnectionId, bots).WorkerId); await Clients.All.SendAsync("Dashboard_WorkerList", new DashboardWorkerMessage() { AvailableWorkers = WorkerManager.Workers }); Console.WriteLine("Worker Registration Completed."); }
private async Task UpdateAccountInfoToBotProcess(AccountInfoMessage info) { var process = WorkerManager.GetAllProcesses().Where(p => p.Account == info.Username).FirstOrDefault(); if (process != null) { process.Status = info.Status; process.CharacterName = info.CharacterName; process.TotalLevel = info.TotalLevel; process.QuestPoints = info.QuestPoints; var processes = WorkerManager.GetAllProcesses(); await Clients.All.SendAsync("Dashboard_ActiveBots", processes); } }
public async Task BotStopped(BotProcess process) { var worker = WorkerManager.Workers.Where(w => w.WorkerId == process.WorkerId).FirstOrDefault(); if (worker == null) { return; } var proc = worker.Processes.Where(p => p.ProcessId == process.ProcessId).FirstOrDefault(); worker.Processes.Remove(proc); await Clients.All.SendAsync("Dashboard_BotStopped", WorkerManager.GetAllProcesses()); }