/// <summary> /// Carga los archivos de un álbum /// </summary> private MediaFileModelCollection LoadFiles(MediaAlbumModel album, MLNode rootML) { var files = new MediaFileModelCollection(); // Carga los archivos foreach (MLNode nodeML in rootML.Nodes) { if (nodeML.Name == TagFile) { var file = new MediaFileModel(); // Carga los datos file.Album = album; file.Name = nodeML.Nodes[TagName].Value; file.Description = nodeML.Nodes[TagDescription].Value; file.CreatedAt = nodeML.Attributes[TagCreatedAt].Value.GetDateTime(DateTime.Now); file.Status = nodeML.Attributes[TagStatus].Value.GetEnum(MediaFileModel.StatusFile.NotPlayed); file.FileName = nodeML.Nodes[TagFileName].Value; file.Url = nodeML.Nodes[TagUrl].Value; // Añade el archivo if (!string.IsNullOrEmpty(file.Url) || !string.IsNullOrEmpty(file.FileName)) { files.Add(file); } } } // Devuelve los archivos return(files); }
/// <summary> /// Obtiene los archivos para descargar /// </summary> private MediaFileModelCollection GetDownloadFiles() { var files = new MediaFileModelCollection(); // Obtiene los archivos para descargar foreach (MediaItemListViewModel fileViewModel in GetSelectedFiles()) { if (fileViewModel.CanDownload) { files.Add(fileViewModel.File); } } // Devuelve la colección de archivos return(files); }
/// <summary> /// Obtiene los nodos de los archivos /// </summary> private MLNodesCollection GetNodes(MediaFileModelCollection files) { var nodesML = new MLNodesCollection(); // Añade los nodos de los archivos foreach (MediaFileModel file in files) { var nodeML = nodesML.Add(TagFile); // Carga los datos nodeML.Nodes.Add(TagName, file.Name); nodeML.Nodes.Add(TagDescription, file.Description); nodeML.Attributes.Add(TagCreatedAt, file.CreatedAt); nodeML.Attributes.Add(TagStatus, file.Status.ToString()); nodeML.Nodes.Add(TagFileName, file.FileName); nodeML.Nodes.Add(TagUrl, file.Url); } // Devuelve la colección de nodos return(nodesML); }
/// <summary> /// Descarga los archivos /// </summary> private void DownloadFiles() { MediaFileModelCollection files = GetDownloadFiles(); if (files.Count == 0) { MediaPlayerViewModel.Instance.ControllerWindow.ShowMessage("No se ha seleccionado ningún archivo para descargar"); } else { MediaFilesDownloader downloader = new MediaFilesDownloader(MediaPlayerViewModel.Instance.MediaManager.PathFiles, files); // Asigna los manejadores de eventos downloader.EndDownload += (sender, args) => LoadReproductionList(); downloader.MediaFileDownload += (sender, args) => MediaPlayerViewModel.Instance.HostController.Messenger.SendLog(MediaPlayerViewModel.Instance.ModuleName, MessageLog.LogType.Information, $"Descargando {args.File.Url}", args.File.FileName, null); // Descarga los archivos downloader.DownloadFiles(); } }
public MediaFilesDownloader(string pathBase, MediaFileModelCollection files) { PathBase = pathBase; Files = files; }