public async Task <PlayingOrchestrateResult> PreperePlayWithCache(VideoId videoId) { if (!InternetConnection.IsInternet()) { return(new PlayingOrchestrateResult(PlayingOrchestrateFailedReason.RequireNetworkConnection)); } var preparePlayVideo = await _nicoVideoSessionProvider.PreparePlayVideoAsync(videoId); var commentSessionProvider = preparePlayVideo; var nicoVideoDetails = preparePlayVideo?.GetVideoDetails(); return(new PlayingOrchestrateResult( new CachedVideoSessionProvider(_videoCacheManager.GetVideoCache(videoId), _niconicoSession), commentSessionProvider, nicoVideoDetails )); }