Esempio n. 1
0
        //событие при обновлении таймера, (имитация времени)
        //здесь происходят все обновления данных и коллекций
        private void Dtimer_OnChangeTime(DateTime step)
        {
            //ставим новое время
            RealDateTime = step;
            OnPropertyChanged("RealDateTime");

            //перебором коллекции обновляем статус рейса
            bool result = false;

            foreach (var vog in Voyages)
            {
                //сменился ли статус
                var tmp = vog.SetStatus(RealDateTime);
                if (tmp)
                {
                    LastVoyage = vog; OnPropertyChanged("LastVoyage"); OnPropertyChanged("LastStatus");
                }
                if (result == false)
                {
                    result = tmp;
                }


                //если рейс уже вылетел, добавляем инфу о пассажирах на график
                if (vog.Status == 2 || vog.Status == 3)
                {
                    if (names.Where(x => x == vog.Name).Count() == 0)
                    {
                        names.Add(vog.Name);
                        graphVoyage.AddSeries(new PasItem(RealDateTime, vog.Passenger, vog.Name));
                    }
                }

                //если рейс уже приземлился, добавляем инфу о пассажирах на график 2
                if (vog.Status == 5)
                {
                    if (names2.Where(x => x == vog.Name).Count() == 0)
                    {
                        names2.Add(vog.Name);
                        graphVoyage.AddSeries2(new PasItem(RealDateTime, vog.Passenger, vog.Name));
                    }
                }
            }

            //если данные статусы рейсов поменялись, обновляем фильтры коллекций
            if (result)
            {
                Executer.OnUIThread(UpdateUIViewCollection);
            }
        }