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