Пример #1
0
 public bool NeedsDownload(string videoId, StorageFile storageFile)
 {
     if (UrlCaches.ContainsKey(videoId) && storageFile.Exists())
     {
         var fileName = storageFile.ToString();
         var urlCache = UrlCaches[videoId];
         if (storageFile.Length >= urlCache.Length)
         {
             if (!VideoCaches.ContainsKey(fileName))
             {
                 SetFinished(urlCache.VideoId, fileName, false);
             }
             else if (VideoCaches[fileName].Finished)
             {
                 return(false);
             }
         }
         foreach (var item in VideoCaches.Where(p => p.Value.FileName != fileName && p.Value.Finished && File.Exists(p.Value.FileName) && p.Value.VideoId == videoId))
         {
             try {
                 File.Copy(item.Value.FileName, fileName, true);
             } catch (IOException) {
                 return(true);
             }
             SetFinished(urlCache.VideoId, fileName, true);
             return(false);
         }
     }
     return(true);
 }
Пример #2
0
 public void SetFinished(string videoId, string fileName, bool finished)
 {
     if (VideoCaches.ContainsKey(fileName))
     {
         var item = VideoCaches[fileName];
         if (item.VideoId == videoId)
         {
             item.Finished = finished;
         }
     }
     else
     {
         var videoCache = new VideoCache {
             VideoId = videoId, FileName = fileName, Finished = finished
         };
         _videoCaches.Add(videoCache);
         VideoCaches.Add(fileName, videoCache);
     }
 }