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