/// <summary>
 /// Initializes a new instance of the <see cref="ReceiverService"/> class.
 /// </summary>
 /// <param name="eventAggregator">The event aggregator.</param>
 public SpeechService(IEventAggregator eventAggregator, ConfigProperties config)
 {
     _eventAggregator = eventAggregator;
     SubscribeEvents();
     _config = config;
     _speechSynthesizer.Volume = 100;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceiverService"/> class.
 /// </summary>
 /// <param name="eventAggregator">The event aggregator.</param>
 public SoundEffectsService(IEventAggregator eventAggregator, ConfigProperties config)
 {
     _config = config;
     _soundDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "Sounds");
     SubscribeEvents(eventAggregator);
     RegisterMouseClick();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigPresenter"/> class.
 /// </summary>
 /// <param name="config">The config.</param>
 public ConfigPresenter(ConfigProperties config, GameMetaDataModel game)
 {
     _config = config;
     _game = game;
     InitializeCommands();
     _gameObserver = new PropertyObserver<GameMetaDataModel>(_game).RegisterHandler(o => o.GameNumber, o => OnPropertyChanged("GameNumber"));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceiverService"/> class.
 /// </summary>
 /// <param name="eventAggregator">The event aggregator.</param>
 public FitnessTestGameService(IUnityContainer container, ILoggerFacade logger, ConfigProperties config, IRegionViewRegistry regionRegistry, IEventAggregator eventAggregator, GameMetaDataModel game)
 {
     _container = container;
     _game = game;
     _logger = logger;
     _config = config;
     _eventAggregator = eventAggregator;
     _regionRegistry = regionRegistry;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="CountDownClockPresenter"/> class.
        /// </summary>
        public CountDownClockPresenter(IEventAggregator eventAggregator, ConfigProperties config)
        {
            _eventAggregator = eventAggregator;
            _config = config;

            _timer.Interval = TimeSpan.FromMilliseconds(100);
            _timer.Tick += Timer_Tick;
            eventAggregator.GetEvent<CountDownClockEvents.ChangeState>().Subscribe(OnCountDownStateChanged);
            ResetCountDown();
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceiverService"/> class.
 /// </summary>
 /// <param name="eventAggregator">The event aggregator.</param>
 public ReceiverService(IUnityContainer container, IEventAggregator aggregator, ILoggerFacade logger, ConfigProperties config)
 {
     _container = container;
     _eventAggregator = aggregator;
     _logger = logger;
     _receiverManager = new ReceiverManager(config.CourtNumber);
     _config = config;
     InitializeReceiverManager();
     SubscribeEvents();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ReceiverService"/> class.
 /// </summary>
 /// <param name="eventAggregator">The event aggregator.</param>
 public DataLogService(IUnityContainer container, IEventAggregator eventAggregator, ILoggerFacade logger, 
     ConfigProperties config, DataLogModel dataLog, GameMetaDataModel game)
 {
     _container = container;
     _eventAggregator = eventAggregator;
     _logger = logger;
     _dataLog = dataLog;
     _game = game;
     _config = config;
     SubscribeEvents();
     LoadDataSet();
     if (dataLog.Impacts.Count > 0)
     {
         game.GameNumber = (byte)(dataLog.Impacts.Max(row => row.GameNumber) + 1);
     }
     _databaseWriter.DoWork += (sender, e) => WriteDatabaseToDisk();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ConfigPresenter"/> class.
        /// </summary>
        /// <param name="config">The config.</param>
        public ConfigPresenter(ConfigProperties config, IEventAggregator eventAggregator)
        {
            _config = config;
            _configObserver = new PropertyObserver<ConfigProperties>(_config);
            _configObserver.RegisterHandler(o => o.RequiredImpactLevel, o => OnPropertyChanged("RequiredImpactLevel"));
            _configObserver.RegisterHandler(o => o.ContactSensorRequired, o => OnPropertyChanged("ContactSensorRequired"));

            RegisterChungCommand = new DelegateCommand<object>(obj =>
            {
                eventAggregator.GetEvent<RemoteEvents.ButtonPressed>().Publish(RemoteEvents.Buttons.RegisterChung);
            });

            RegisterHongCommand = new DelegateCommand<object>(obj =>
            {
                eventAggregator.GetEvent<RemoteEvents.ButtonPressed>().Publish(RemoteEvents.Buttons.RegisterHong);
            });

            RegisterTargetCommand = new DelegateCommand<object>(obj =>
            {
                eventAggregator.GetEvent<RemoteEvents.ButtonPressed>().Publish(RemoteEvents.Buttons.RegisterTarget);
            });
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigPresenter"/> class.
 /// </summary>
 /// <param name="config">The config.</param>
 public ConfigPresenter(ConfigProperties config)
 {
     _config = config;
     InitializeCommands();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigPresenter"/> class.
 /// </summary>
 /// <param name="config">The config.</param>
 public ConfigPresenter(ConfigProperties config)
 {
     _config = config;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="CountDownClockPresenter"/> class.
 /// </summary>
 /// <param name="view">The view.</param>
 public MeterPresenter(IUnityContainer container, IEventAggregator eventAggregator, ConfigProperties config)
 {
     _eventAggregator = eventAggregator;
     _container = container;
     _config = config;
     RegisterCommands();
     SubscribeEvents();
 }