Ejemplo n.º 1
0
 public SynchronizationController(
     IScheduler scheduler, 
     IStartSynchronizing startSynchronizing,
     ITranscodingNotifications transcodingNotifications)
 {
     if (transcodingNotifications == null) throw new ArgumentNullException(nameof(transcodingNotifications), $"{nameof(transcodingNotifications)} is null.");
     if (startSynchronizing == null) throw new ArgumentNullException(nameof(startSynchronizing), $"{nameof(startSynchronizing)} is null.");
     if (scheduler == null) throw new ArgumentNullException(nameof(scheduler));
     _scheduler = scheduler;
     _startSynchronizing = startSynchronizing;
     _transcodingNotifications = transcodingNotifications;
     _enabledDisposable = new ReplaySubject<IDisposable>(1, _scheduler);
     _enabledDisposable.OnNext(null);
     _disposable = _enabledDisposable.Delta((d1, d2) =>
     {
         if (d1 != null)
         {                    
             d1.Dispose();
         }
         return d1 != null || d2 != null;
     })
         .TakeWhile(b => b)
         .SubscribeOn(_scheduler)
         .Subscribe(_ => { }, e => { });
 }
 public ConfigurationPageViewModel(
     IViewModelServices services,
     ISettingsService settingsService,
     ISynchronizationController synchronizationController,
     ITranscodingNotifications transcodingNotifications,
     ILogger logger) : base(services)
 {
     if (services == null)
         throw new ArgumentNullException(nameof(services), $"{nameof(services)} is null.");
     if (transcodingNotifications == null)
         throw new ArgumentNullException(nameof(transcodingNotifications), $"{nameof(transcodingNotifications)} is null.");
     if (synchronizationController == null) throw new ArgumentNullException(nameof(synchronizationController));
     if (settingsService == null) throw new ArgumentNullException(nameof(settingsService));
     if (logger == null) throw new ArgumentNullException(nameof(logger));
     _settingsService = settingsService;
     _synchronizationController = synchronizationController;
     _transcodingNotifications = transcodingNotifications;
     _logger = logger;
 }