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); }
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); }); }
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; } }
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); }); }