Пример #1
0
        /*private void RemoveAllDrivers()
         * {
         *  if (!Application.Current.Dispatcher.CheckAccess())
         *  {
         *      Application.Current.Dispatcher.Invoke(RemoveAllDrivers);
         *      return;
         *  }
         *
         *  lock (_lockObject)
         *  {
         *      _driverNameTimingMap.Clear();
         *      DriversViewModels.Clear();
         *  };
         * }*/

        public void AddDriver(DriverTiming driver)
        {
            if (!Application.Current.Dispatcher.CheckAccess())
            {
                Application.Current.Dispatcher.Invoke(() => AddDriver(driver));
                return;
            }

            DriverTimingViewModel newViewModel = new DriverTimingViewModel(driver)
            {
                ClassIndicationBrush = GetClassColor(driver.DriverInfo)
            };

            lock (_lockObject)
            {
                //If possible, rebind - do not create new
                if (_driverNameTimingMap.ContainsKey(driver.Name))
                {
                    _driverNameTimingMap[driver.Name] = driver;
                    RebindViewModel(DriversViewModels.First(x => x.Name == driver.Name), driver);
                    return;
                }
                _driverNameTimingMap[driver.Name] = driver;
                newViewModel.OutLineColor         = GetDriverOutline(driver.Name);
                DriversViewModels.Add(newViewModel);
            }
        }
Пример #2
0
        private void AddDrivers(IEnumerable <DriverTiming> drivers)
        {
            if (!Application.Current.Dispatcher.CheckAccess())
            {
                Application.Current.Dispatcher.Invoke(() => AddDrivers(drivers));
                return;
            }

            try
            {
                _loadIndex++;
                Logger.Info("Add Drivers Called");
                List <DriverTimingViewModel> newViewModels = drivers.Select(x => new DriverTimingViewModel(x)
                {
                    ClassIndicationBrush = GetClassColor(x.DriverInfo),
                    OutLineColor         = GetDriverOutline(x.Name)
                }).ToList();

                foreach (DriverTimingViewModel driverTimingViewModel in newViewModels)
                {
                    lock (_lockObject)
                    {
                        if (_driverNameTimingMap.ContainsKey(driverTimingViewModel.Name))
                        {
                            continue;
                        }
                        _driverNameTimingMap[driverTimingViewModel.Name] = driverTimingViewModel.DriverTiming;
                        DriversViewModels.Add(driverTimingViewModel);
                    }
                }

                _loadIndex--;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            Logger.Info("Add Drivers Completed");
        }