public void OnDeleteControllerReceived(object sender, NetworkDataReceivedEventArgs e) { if (mControllers.ContainsKey(e.From)) { Controller controller = mControllers[e.From]; mControllers.Remove(controller.Callsign); if (controller.IsValid) { ControllerDeleted?.Invoke(this, new ControllerEventArgs(controller)); } } }
private void ValidateController(Controller controller) { bool isValid = controller.IsValid; controller.IsValid = (controller.IsValidATC && controller.Frequency.IsValidFrequency()); if (isValid && !controller.IsValid) { ControllerDeleted?.Invoke(this, new ControllerEventArgs(controller)); } else if (!isValid && controller.IsValid) { ControllerAdded?.Invoke(this, new ControllerEventArgs(controller)); } }
private void RemoveAll() { List <Controller> temp = new List <Controller>(); temp = mControllers.Values.ToList(); foreach (Controller controller in temp) { if (controller.IsValid) { controller.IsValid = false; ControllerDeleted?.Invoke(this, new ControllerEventArgs(controller)); } } mControllers.Clear(); }
private void ControllerUpdateTick(object sender, EventArgs e) { List <string> temp = mControllers.Values.Where(o => (DateTime.Now - o.LastUpdate).TotalMilliseconds > 45000.0).Select(o => o.Callsign).ToList(); foreach (string value in temp) { Controller controller = mControllers[value]; mControllers.Remove(value); if (controller.IsValid) { controller.IsValid = false; ControllerDeleted?.Invoke(this, new ControllerEventArgs(controller)); } } }