/// <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); }
public static MediaFileModel GetMediaFile(string filePath) { if (!IsMediaFile(filePath)) return null; var result = new MediaFileModel { FileType = Path.GetExtension(filePath), FileName = Path.GetFileName(filePath), FilePath = Path.GetFullPath(filePath) }; var file = TagLib.File.Create(filePath); if (file == null) return null; var tag = file.Tag; if (tag != null) { result.Title = tag.Title; result.Album = tag.Album; if (tag.AlbumArtists != null) { if (tag.AlbumArtists.Length > 1) result.Artist = String.Join(", ", tag.AlbumArtists); else if (tag.AlbumArtists.Length == 1) result.Artist = tag.AlbumArtists[0]; else result.Artist = ""; } } return result; }
private void editListMediaItem(MediaFileModel file) { AddComment form = new AddComment(file); form.ShowDialog(); file.Comment = form.Comment; }
private async Task RemoveMedia(MediaFileModel mediaFile) { _mediaToDelete.Add(mediaFile); var fileHelper = DependencyService.Get <IFileHelper>(); fileHelper.DeleteFile(mediaFile.Path); SelectedMedia.Remove(mediaFile); SetMediaHeight(); }
public async void AddAudio() { if (((App)App.Current).AudioRecording != null) { var recording = new MediaFileModel(((App)App.Current).AudioRecording.Path, LocalRecordId, MediaFileModel.MediaType.Audio); SelectedMedia.Add(recording); OnPropertyChanged(nameof(SelectedMedia)); ((App)App.Current).AudioRecording = null; } }
public AddComment(MediaFileModel file) { InitializeComponent(); label2.Text = file.Name; label4.Text = file.Type; label6.Text = file.Path; if (file.Comment != "") { textBox1.Text = file.Comment; } }
private static bool IsAudio(MediaFileModel mediaFileModel) { return(mediaFileModel.Extension switch { "mp3" => true, "aac" => true, "flac" => true, "wav" => true, "ogg" => true, "m4a" => true, _ => false });
/// <summary> /// Trata el mensaje de añadir archivos /// </summary> private void TreatMessagePlayMedia(MessagePlayMedia message) { if (message.Files.Count > 0) { MediaAlbumModel album = MainViewModel.MediaManager.File.SearchAlbumByName(message.Group); MediaAlbumModel reproductionList = new MediaAlbumModel { Name = message.Group }; // Agrega el álbum si no existía if (album == null) { album = MainViewModel.MediaManager.File.Albums.Add(message.Group, string.Empty); } // Añade los archivos foreach (KeyValuePair <string, string> file in message.Files) { MediaFileModel media = new MediaFileModel { Album = album }; // Asigna las propiedades media.Name = file.Key; if (file.Value.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) || file.Value.StartsWith("https://", StringComparison.CurrentCultureIgnoreCase)) { media.Url = file.Value; } else { media.FileName = file.Value; } // Añade el archivo al álbum if (!album.Files.ExistsByFile(media)) { album.Files.Add(media); } // Añade el archivo a la lista de reproducción reproductionList.Files.Add(media); } // Graba el álbum y lanza el evento de reproducción de lista if (reproductionList.Files.Count > 0) { MediaPlayerViewModel.Instance.MediaManager.Save(); RaiseEventPlay(reproductionList); } } }
public AddCategory(MediaFileModel file, List <string> categories) { InitializeComponent(); label3.Text = file.Name; label5.Text = file.Type; label7.Text = file.Path; if (file.Comment != "") { label9.Text = file.Comment; } if (file.Category != null) { label11.Text = file.Category.ToString(); } listBox1.DataSource = categories; }
/// <summary> /// Obtiene el nombre del archivo de descarga /// </summary> private string GetDownloadFileName(MediaFileModel file) { string fileName = string.Empty; // Calcula el nombre del archivo if (!string.IsNullOrEmpty(file.Url)) { // Obtiene el nombre de archivo fileName = Path.Combine(PathBase, HelperFiles.Normalize(file.Album.Name), HelperFiles.Normalize(Path.GetFileName(file.Url))); // Ajusta el nombre de archivo fileName = HelperFiles.GetConsecutiveFileName(Path.GetDirectoryName(fileName), Path.GetFileName(fileName)); } // Devuelve el nombre de archivo return(fileName); }
public void createDirectory() { FolderBrowserDialog folderBrowser = new FolderBrowserDialog(); folderBrowser.ShowNewFolderButton = true; DialogResult result = folderBrowser.ShowDialog(); DirectoryModel direct = new DirectoryModel(folderBrowser.SelectedPath, new BindingList <MediaFileModel>()); if (result == DialogResult.OK) { Environment.SpecialFolder root = folderBrowser.RootFolder; try { var fileExtensions = new[] { ".doc", ".docx", ".pdf", ".ppt", ".pptx", ".xls", ".xslx", ".mp3", ".jpg", ".png", ".bpm", ".avi", ".mp4" }; filePaths = Directory .GetFiles(folderBrowser.SelectedPath) .Where(file => fileExtensions.Any(file.ToLower().EndsWith)) .ToArray(); for (var i = 0; i < filePaths.Length; i++) { var fn = new FileInfo(filePaths[i]); MediaFileModel importFile = new MediaFileModel(); importFile.Name = fn.Name.ToString(); importFile.Type = fn.Extension.ToString(); importFile.Path = fn.Directory.ToString(); direct.MediaFiles.Add(importFile); } ListViewItem directory = new ListViewItem(folderBrowser.SelectedPath, _form.listViewLibrary.Groups[0]); directory.Selected = true; directories.Add(direct); _form.listViewLibrary.Items.Add(directory); _form.dataGridView1.DataSource = direct.MediaFiles; Json.saveToJson(@".\directories.json", directories); } catch (Exception ex) { MessageBox.Show("Sorry this folder is not available because " + ex.Message); } } }
private void addCategoryMediaItem(MediaFileModel file) { List <string> categoryList = new List <string>(); foreach (ListViewItem item in _form.listViewLibrary.Groups[2].Items) { categoryList.Add(item.Text); } AddCategory categoryForm = new AddCategory(file, categoryList); categoryForm.ShowDialog(); if (categoryForm.Category.CategoryName != null) { file.Category = categoryForm.Category.CategoryName; Json.saveToJson(@".\directories.json", directories); Json.saveToJson(@".\playlists.json", playlists); } }
public MediaItemListViewModel(MediaFileModel file) { File = file; Group = file.Album.Name; Title = file.Name; Url = file.Url; FileName = file.FileName; CreatedAt = file.CreatedAt; if (!string.IsNullOrWhiteSpace(file.FileName)) { FullFileName = file.FileName; TextFile = System.IO.Path.GetFileNameWithoutExtension(file.FileName); } else { TextFile = FullFileName = file.Url; CanDownload = true; } }
private void dataGridViewMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { MediaFileModel file = _form.dataGridView1.CurrentRow.DataBoundItem as MediaFileModel; ListViewItem selectedList = _form.listViewLibrary.SelectedItems[0]; switch (e.ClickedItem.ToString()) { case "Delete": deleteListMediaItem(selectedList); _form.dataGridView1.Refresh(); break; case "Add Comment": editListMediaItem(file); _form.dataGridView1.Refresh(); break; case "Add Category": addCategoryMediaItem(file); _form.dataGridView1.Refresh(); break; } }
/// <summary> /// Lanza el evento de descarga de una entrada de un blog /// </summary> private void RaiseEvent(MediaFileModel file, int actual, int total) { MediaFileDownload?.Invoke(this, new EventArguments.MediaFileDownloadEventArgs(file, actual, total)); }
public Task <int> SaveMedia(MediaFileModel mediaFileModel) { return(database.InsertAsync(mediaFileModel)); }
public Task <int> DeleteMedia(MediaFileModel mediaFileModel) { return(database.DeleteAsync(mediaFileModel)); }
private void deleteListMediaItem(ListViewItem selectedList) { MediaFileModel file = _form.dataGridView1.CurrentRow.DataBoundItem as MediaFileModel; }