public TrainHub(TrainWorker worker) { _trainWorker = worker; if (!_eventsHooked) { _eventsHooked = true; _trainWorker.OnUpdatedTrains += _trainWorker_OnUpdatedTrains; _trainWorker.OnGenerateStateChange += _trainWorker_OnGenerateStateChange; } }
private void setValues() { worker = new TrainWorker(); cmb_export.Items.Add("Внутригосударственный"); cmb_export.Items.Add("На экспорт"); cmb_send_staions.Items.Add("Чукурсай"); cmb_export.SelectedIndex = 0; cmb_send_staions.SelectedIndex = 0; password = worker.mainTable.Rows[4].ItemArray[5].ToString(); dollar = worker.mainTable.Rows[5].ItemArray[5].ToString(); yevro = worker.mainTable.Rows[6].ItemArray[5].ToString(); rubl = worker.mainTable.Rows[7].ItemArray[5].ToString(); txt_dollar.Text = "1 USD = " + dollar + " UZS"; txt_yevro.Text = "1 EUR = " + yevro + " UZS"; txt_rubl.Text = "1 RUB = " + rubl + " UZS"; }
private void _trainWorker_OnUpdatedTrains(TrainWorker sender, List <Train> updateTrains) { if (UserCenters == null) { return; } if (_trainWorker.GenerateState < GenerateState.Loading) { return; } var hubContext = GlobalHost.ConnectionManager.GetHubContext <TrainHub, ITrainHub>(); foreach (var userBound in UserCenters) { var trains = updateTrains.Where(x => Maths.Distance(userBound.Value, x.Posistion) < MaxViewDistance) .Select(x => new TrainUpdate(x.Posistion, x.TripId, x.TripHeadsign)) .ToList(); hubContext.Clients.Client(userBound.Key).UpdateTrains(trains); } }
private static void _trainWorker_OnGenerateStateChange(TrainWorker sender, Models.GenerateStateArgs args) { var hubContext = GlobalHost.ConnectionManager.GetHubContext <TrainHub, ITrainHub>(); hubContext.Clients.All.GenerateStateChanged(args.NewState); }