private void ExecuteClearQuadratureCommand()
 {
     //lock (quadLocker)
     //{
     QuadratureEvents.Clear();
     //}
 }
        private void ProcessQuadratureStateChange(QuadratureStateChangeMessage eventData)
        {
            int delay = 1;

            using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
            {
                var readDelay = dp.SettingsRepository.FindSingle(x => x.Key == TruckClientSettingKeys.RFID_READ_DELAY);

                if (readDelay != null)
                {
                    delay = int.Parse(readDelay.Value);
                }
            }

            QuadratureStateChangeMessage lastEvent = QuadratureEncoderDataProvider.LastEvent;

            System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
            {
                if (eventData.DirectionOfRotation == DirectionOfRotation.RotatingClockwise)
                {
                    QuadratureEvents.Add(new QuadratureEvent {
                        Status = "Load started", Timestamp = DateTime.Now.ToUniversalTime()
                    });
                    rfidStartTime = DateTime.Now.AddSeconds(delay).ToUniversalTime();
                }
                else if (eventData.DirectionOfRotation == DirectionOfRotation.RotatingCounterClockwise)
                {
                    QuadratureEvents.Add(new QuadratureEvent {
                        Status = "Unload started", Timestamp = DateTime.Now.ToUniversalTime()
                    });
                    rfidStartTime = DateTime.Now.AddSeconds(delay).ToUniversalTime();
                }
                else
                {
                    QuadratureEvents.Add(new QuadratureEvent {
                        Status = "Stopped", Timestamp = DateTime.Now.ToUniversalTime()
                    });
                    rfidStartTime = DateTime.Now.AddDays(100).ToUniversalTime();
                }
            }));
        }