public static async Task <bool> ProcessData() { var currentWorkers = await DA.GetData(); string mes = ""; foreach (var currentW in currentWorkers) { if (!WorkerModel.BaseWorkers.Any(x => x.id == currentW.id)) { if (currentW.hashrate > 0) { mes += $"{currentW.username} => STARTED{Environment.NewLine}"; currentW.IsMonitor = true; } else { currentW.IsMonitor = false; } WorkerModel.BaseWorkers.Add(currentW); continue; } else { var baseCurrent = WorkerModel.BaseWorkers.FirstOrDefault(x => x.id == currentW.id); int index = WorkerModel.BaseWorkers.FindIndex(x => x.id == currentW.id); if (!baseCurrent.IsMonitor) { if (currentW.hashrate > 0) { mes += $"{currentW.username} => STARTED{Environment.NewLine}"; currentW.IsMonitor = true; } WorkerModel.BaseWorkers[index] = currentW; continue; } else { if (currentW.hashrate.Equals(0)) { mes += $"{currentW.username} => STOPPED{Environment.NewLine}"; currentW.IsMonitor = false; } else { currentW.IsMonitor = true; } WorkerModel.BaseWorkers[index] = currentW; continue; } } } if (!string.IsNullOrEmpty(mes)) { Console.WriteLine(mes); await WorkerModel.SendMessage(mes); } return(true); }
public async static void OnStart() { WorkerModel.BaseWorkers = await DA.GetData(); string mes = "[FIRST START]" + Environment.NewLine; foreach (var w in WorkerModel.BaseWorkers) { mes += $"{w.username} => {(w.hashrate.Equals(0) ? "STOPPED" : "STARTED")}{Environment.NewLine}"; w.IsMonitor = w.hashrate > 0; } Console.WriteLine("[OnStart]" + Environment.NewLine + mes); await WorkerModel.SendMessage(mes); }