コード例 #1
0
        /// <summary>
        /// Models.Provider.NicoVideoProvider内で検出した動画削除のイベントを受けて
        /// キャッシュされた動画を削除します
        /// </summary>
        /// <param name="eventAggregator"></param>
        /// <param name="videoCacheManager"></param>
        /// <param name="notificationService"></param>
        public NotificationCacheVideoDeletedService(
            IEventAggregator eventAggregator,
            Models.Cache.VideoCacheManager videoCacheManager,
            Services.NotificationService notificationService
            )
        {
            EventAggregator     = eventAggregator;
            VideoCacheManager   = videoCacheManager;
            NotificationService = notificationService;

            EventAggregator.GetEvent <Models.Provider.VideoDeletedEvent>()
            .Subscribe(async videoInfo =>
            {
                var deletedCount = await VideoCacheManager.DeleteCachedVideo(videoInfo.RawVideoId);

                if (deletedCount > 0)
                {
                    NotificationService.ShowToast("動画削除:" + videoInfo.RawVideoId
                                                  , $"『{videoInfo?.Title ?? videoInfo.RawVideoId}』 はニコニコ動画サーバーから削除されたため、キャッシュを強制削除しました。"
                                                  , Microsoft.Toolkit.Uwp.Notifications.ToastDuration.Long
                                                  );
                }
            }
                       , keepSubscriberReferenceAlive: true
                       );
        }
コード例 #2
0
        /// <summary>
        /// Models.Provider.NicoVideoProvider内で検出した動画削除のイベントを受けて
        /// キャッシュされた動画を削除します
        /// </summary>
        /// <param name="eventAggregator"></param>
        /// <param name="videoCacheManager"></param>
        /// <param name="notificationService"></param>
        public NotificationCacheVideoDeletedService(
            IEventAggregator eventAggregator,
            Models.Cache.VideoCacheManager videoCacheManager,
            Services.NotificationService notificationService
            )
        {
            EventAggregator     = eventAggregator;
            VideoCacheManager   = videoCacheManager;
            NotificationService = notificationService;

            EventAggregator.GetEvent <Models.Provider.VideoDeletedEvent>()
            .Subscribe(async videoInfo =>
            {
                if (await VideoCacheManager.DeleteFromNiconicoServer(videoInfo.RawVideoId))
                {
                    NotificationService.ShowToast("ToastNotification_VideoDeletedWithId".Translate(videoInfo.RawVideoId)
                                                  , "ToastNotification_ExplainVideoForceDeletion".Translate(videoInfo?.Title ?? videoInfo.RawVideoId)
                                                  , Microsoft.Toolkit.Uwp.Notifications.ToastDuration.Long
                                                  );
                }
            }
                       , keepSubscriberReferenceAlive: true
                       );
        }