internal AnalyticsCounter(DeviceCounterBase deviceCounter, IIntervalTimer timer)
 {
     _deviceCounter  = deviceCounter;
     _timer          = timer;
     _numberOfReads  = deviceCounter.LogInterval / deviceCounter.ReadInterval;
     _timer.Interval = (deviceCounter.LogInterval / _numberOfReads) * 1000;
 }
        public void setup()
        {
            //Set up S's
            fakeConsoleOutput = Substitute.For<IConsoleOutput>();
            fakeFileOutput = Substitute.For<IFileOutput>();
            fakeIntervalTimer = Substitute.For<IIntervalTimer>();
            fakeTransponderReceiver = Substitute.For<ITransponderReceiver>();

            //Set up X's
            airspace = new Airspace(10000, 90000, 10000, 90000, 500, 20000);

            //Set up T's
            atmClass = new ATMclass(fakeConsoleOutput, fakeFileOutput, airspace, fakeTransponderReceiver);

        }
        public MediaProvider(ISettingsProvider settingsProvider, IIntervalTimer intervalTimer, ILogger logger)
        {
            if (settingsProvider == null)
            {
                throw new ArgumentNullException(nameof(settingsProvider));
            }
            if (intervalTimer == null)
            {
                throw new ArgumentNullException(nameof(intervalTimer));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _settingsProvider = settingsProvider;
            _intervalTimer    = intervalTimer;
            _logger           = logger;

            _settingsProvider.SettingsChanged += (s, o) =>
            {
                var settingName = (o as System.Configuration.SettingChangingEventArgs).SettingName;
                switch (settingName)
                {
                case nameof(_settingsProvider.FolderPath):
                    App.Current.Dispatcher.BeginInvoke(new Action(() => ScanFolderPath()));
                    InitializeTimer();
                    break;

                case nameof(_settingsProvider.RefreshRate):
                    InitializeTimer();
                    break;
                }
            };

            MediaObjectCollection = new HashSet <IMediaObject>();

            ScanFolderPath();

            InitializeTimer();
        }
Exemple #4
0
        public MainWindowViewModel(ISettingsProvider settingsProvider, IServeMedia mediaServer, IMediaProvider mediaProvider, ISaveSettings settingsSaver, IIntervalTimer mediaTimer, IIntervalTimer previewTimer, IGetViewPreview viewPreviewProvider)
        {
            if (settingsProvider == null)
            {
                throw new ArgumentNullException(nameof(settingsProvider));
            }
            if (mediaServer == null)
            {
                throw new ArgumentNullException(nameof(mediaServer));
            }
            if (mediaProvider == null)
            {
                throw new ArgumentNullException(nameof(mediaProvider));
            }
            if (settingsSaver == null)
            {
                throw new ArgumentNullException(nameof(settingsSaver));
            }
            if (mediaTimer == null)
            {
                throw new ArgumentNullException(nameof(mediaTimer));
            }
            if (previewTimer == null)
            {
                throw new ArgumentNullException(nameof(previewTimer));
            }
            if (viewPreviewProvider == null)
            {
                throw new ArgumentNullException(nameof(viewPreviewProvider));
            }

            _settingsProvider    = settingsProvider;
            _mediaServer         = mediaServer;
            _mediaProvider       = mediaProvider;
            _settingsSaver       = settingsSaver;
            _mediaTimer          = mediaTimer;
            _previewTimer        = previewTimer;
            _viewPreviewProvider = viewPreviewProvider;

            _settingsProvider.SettingsChanged += (s, o) =>
            {
                var settingName = (o as System.Configuration.SettingChangingEventArgs).SettingName;
                switch (settingName)
                {
                case nameof(_settingsProvider.UseFade):
                    App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(UseFade))));
                    break;
                }
            };

            _mediaProvider.MediaCollectionPopulated += (s, o) =>
                                                       App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(CurrentMedia))));

            _mediaProvider.MediaCollectionChanged += (s, o) =>
                                                     App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(MediaCollection))));

            _mediaServer.CurrentMediaUpdated += (s, o) =>
                                                App.Current.Dispatcher.BeginInvoke(new Action(() => SendPropertyChanged(nameof(CurrentMedia))));

            _mediaProvider.ForceUpdate();
            SendPropertyChanged(nameof(_settingsProvider.ShowPreview));

            _previewTimer.Initialize(TimeSpan.FromSeconds(1), () => UpdatePreview());
            _previewTimer.Start();
        }