/// <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();
            }
        }
Example #5
0
 public MediaFilesDownloader(string pathBase, MediaFileModelCollection files)
 {
     PathBase = pathBase;
     Files    = files;
 }