示例#1
0
        /// <summary>
        /// 一般写入读取测试
        /// </summary>
        private static void saveLoadTest(string file)
        {
            //测试写入
            ISaveSettings <TestSetting> setting = Factory.Create <TestSetting>(file);

            setting.SaveSettings(new TestSetting());
            if (setting is IDisposable dis)
            {
                dis.Dispose();
            }
            //测试读取
            IGetSettins <TestSetting> set = Factory.Create <TestSetting>(file);
            var obj  = set.GetSettingsObject();
            var objT = new TestSetting();

            foreach (var p in typeof(TestSetting).GetProperties())
            {
                var pv  = p.GetValue(obj);
                var pvt = p.GetValue(objT);
                Assert.AreEqual(pv, pvt);
            }
            if (set is IDisposable disG)
            {
                disG.Dispose();
            }
        }
        public SettingsWindowViewModel(ISettingsProvider settingsProvider, ISaveSettings settingsSaver)
        {
            if (settingsProvider == null)
            {
                throw new ArgumentNullException(nameof(settingsProvider));
            }
            if (settingsSaver == null)
            {
                throw new ArgumentNullException(nameof(settingsSaver));
            }

            _settingsProvider = settingsProvider;
            _settingsSaver    = settingsSaver;
        }
示例#3
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();
        }