public virtual bool DeleteMedia(IMedia media)
 {
     if (media.Directory == this)
     {
         string fullPath          = ((Media)media).FullPath;
         bool   isLastWithTheName = !_files.Values.Any(m => m.FullPath.Equals(fullPath, StringComparison.CurrentCultureIgnoreCase) && m != media);
         if (isLastWithTheName && media.FileExists())
         {
             try
             {
                 File.Delete(((Media)media).FullPath);
                 Debug.WriteLine(media, "File deleted");
                 return(true);
             }
             catch (Exception e)
             {
                 Debug.WriteLine("MediaDirectory.DeleteMedia {0} failed with error {1}", media, e.Message);
             }
         }
         else
         {
             MediaRemove(media);
             OnMediaDeleted(media);
             return(true);
         }
     }
     return(false);
 }
Пример #2
0
 private void _mediaPRIRemoved(object o, MediaEventArgs e)
 {
     if (MediaDirectorySEC != null &&
         MediaDirectorySEC != MediaDirectoryPRI &&
         MediaDirectorySEC.IsInitialized)
     {
         IMedia mediaToDelete = ((MediaDirectory)MediaDirectorySEC).FindMediaByMediaGuid(e.Media.MediaGuid);
         if (mediaToDelete != null && mediaToDelete.FileExists())
         {
             FileManager.Queue(new FileOperation {
                 Kind = TFileOperationKind.Delete, SourceMedia = mediaToDelete
             }, false);
         }
     }
 }