public NicoVideoCacheInfo(NicoVideoCacheRequest req, string filePath)
 {
     RawVideoId           = req.RawVideoId;
     Quality              = req.Quality;
     IsRequireForceUpdate = req.IsRequireForceUpdate;
     RequestAt            = req.RequestAt;
     FilePath             = filePath;
 }
 public NicoVideoCacheProgress(NicoVideoCacheRequest req, DownloadOperation op, IVideoStreamingDownloadSession session)
 {
     RawVideoId           = req.RawVideoId;
     Quality              = session.Quality;
     IsRequireForceUpdate = req.IsRequireForceUpdate;
     RequestAt            = req.RequestAt;
     DownloadOperation    = op;
     Session              = session;
 }
 public static NicoVideoCacheState ToCacheState(this NicoVideoCacheRequest req)
 {
     if (req is NicoVideoCacheInfo)
     {
         return(NicoVideoCacheState.Cached);
     }
     else if (req is NicoVideoCacheProgress)
     {
         return(NicoVideoCacheState.Downloading);
     }
     else
     {
         return(NicoVideoCacheState.Pending);
     }
 }