Пример #1
0
 public SubscriptionViewModel(
     ILogger logger,
     SubscriptionSourceEntity source,
     SubscriptionManagementPageViewModel pageViewModel,
     SubscriptionManager subscriptionManager,
     PageManager pageManager,
     DialogService dialogService,
     VideoPlayWithQueueCommand videoPlayWithQueueCommand
     )
 {
     _logger              = logger;
     _source              = source;
     _pageViewModel       = pageViewModel;
     _subscriptionManager = subscriptionManager;
     _pageManager         = pageManager;
     _dialogService       = dialogService;
     PlayVideoItemCommand = videoPlayWithQueueCommand;
     IsEnabled            = new ReactiveProperty <bool>(_source.IsEnabled)
                            .AddTo(_disposables);
     IsEnabled.Subscribe(isEnabled =>
     {
         _source.IsEnabled = isEnabled;
         _subscriptionManager.UpdateSubscription(_source);
     })
     .AddTo(_disposables);
 }
Пример #2
0
 private void _subscriptionManager_Added(object sender, SubscriptionSourceEntity e)
 {
     _scheduler.Schedule(() =>
     {
         var vm = new SubscriptionViewModel(_logger, e, this, _subscriptionManager, _pageManager, _dialogService, _VideoPlayWithQueueCommand);
         Subscriptions.Insert(0, vm);
     });
 }
Пример #3
0
        private async void _subscriptionManager_Added(object sender, SubscriptionSourceEntity e)
        {
            using (await _timerLock.LockAsync())
            {
                using (_timerUpdateCancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(10)))
                {
                    await _subscriptionManager.RefreshFeedUpdateResultAsync(e, _timerUpdateCancellationTokenSource.Token);
                }

                _timerUpdateCancellationTokenSource = null;
            }
        }
Пример #4
0
        private void _subscriptionManager_Removed(object sender, SubscriptionSourceEntity e)
        {
            var target = Subscriptions.FirstOrDefault(x => x.SourceType == e.SourceType && x.SourceParameter == e.SourceParameter);

            if (target == null)
            {
                return;
            }

            _scheduler.Schedule(() =>
            {
                target.Dispose();
                Subscriptions.Remove(target);
            });
        }