public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var musicPlaylist = await _context.MusicPlaylists.Include(m => m.User) .FirstOrDefaultAsync(m => m.ID == id); List <MusicViewModels> musics = new List <MusicViewModels>(); foreach (var music in _context.MusicPlaylistCombs.Include(m => m.Musics).Where(m => m.MusicPlaylistID == id)) { musics.Add(new MusicViewModels() { ID = music.Musics.ID, Titel = music.Musics.Titel, ReleaseDate = music.Musics.ReleaseDate, Lenght = music.Musics.Lenght, PhotoPath = music.Musics.PhotoPath }); } if (musicPlaylist == null) { return(NotFound()); } var model = new MusicPlaylistViewModel() { ID = musicPlaylist.ID, Naam = musicPlaylist.Naam, Public = musicPlaylist.Public, Musics = musics, }; return(View(model)); }
/// <summary> /// Method for removing playlist and notyfing background /// music player about made changes /// </summary> /// <param name="playlist"></param> public void RemovePlaylist(MusicPlaylistViewModel playlist) { if (playlist != null) { MusicPlaylists.Remove(playlist); App.SendMessageToBackground(MessageType.RemovePlaylist, playlist.Name); MainPage.Instance.Refresh(); } }
/// <summary> /// Method which adds given playlist to playlists list; /// Used mainly for initialization /// </summary> /// <param name="playlist">Playlist to add</param> public void AddPlaylist(MusicPlaylistViewModel playlist) { if (!MusicPlaylists.Exists(m => m.Name == playlist.Name)) { MusicPlaylists.Add(playlist); App.SendPlaylistDataToBackground(playlist); } MainPage.Instance.SetPlaylists(MusicPlaylists); }
public void RemoveMusicFileFromPlaylist(MusicFileViewModel musicFile, MusicPlaylistViewModel playlist) { if (playlist.musicFileList.ToList().Exists(m => m == musicFile)) { playlist.Remove(musicFile); App.SendMessageToBackground(MessageType.RemoveFromPlaylist, playlist.Name + "\t" + musicFile.Id); } }
/// <summary> /// Method which sets current playlist to given playlist /// </summary> /// <param name="playlist">Playlist to set as current</param> public async void SetMainPlaylistItem(MusicPlaylistViewModel playlist) { if (playlist != null) { await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { mainMusicListview.ItemsSource = playlist.musicFileList; SetCurrentItem(MusicPlayerData.Instance.CurrentMusicFile); }); } }
public static void SendPlaylistDataToBackground(MusicPlaylistViewModel playlistToSend) { const string filesSeparator = "\n"; //Data starts with playlist name string dataToSend = playlistToSend.Name + filesSeparator; foreach (var musicFile in playlistToSend.musicFileList) { dataToSend += musicFile.Id + filesSeparator; } SendMessageToBackground(MessageType.Playlist, dataToSend); }
/// <summary> /// Method for adding given music file to given playlist /// and notyfing background player about made changes /// </summary> /// <param name="musicFile">Music file to add to playlist</param> /// <param name="playlist">Playlist for music file to be added</param> public async void AddMusicFileToPlaylist(MusicFileViewModel musicFile, MusicPlaylistViewModel playlist) { if (!playlist.musicFileList.ToList().Exists(m => m == musicFile)) { playlist.Add(musicFile); App.SendMessageToBackground(MessageType.AddToPlaylist, playlist.Name + "\t" + musicFile.Id); } else { await new MessageDialog("Wybrany utwór już znajduje się w liście odtwarzania!", "Błąd").ShowAsync(); } }
public async Task <IActionResult> Edit(MusicPlaylistViewModel model) { if (ModelState.IsValid) { var musicPlaylist = await _context.MusicPlaylists.Include(m => m.User) .FirstOrDefaultAsync(m => m.ID == model.ID); musicPlaylist.Naam = model.Naam; musicPlaylist.Public = model.Public; _context.Update(musicPlaylist); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Create(MusicPlaylistViewModel model) { var userId = userManager.GetUserId(HttpContext.User); if (ModelState.IsValid) { _context.Add(new MusicPlaylist() { Naam = model.Naam, Public = model.Public, UserId = userId }); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Delete(int?id) { if (id == null) { return(NotFound()); } var musicPlaylist = await _context.MusicPlaylists.Include(m => m.User) .FirstOrDefaultAsync(m => m.ID == id); if (musicPlaylist == null) { return(NotFound()); } var model = new MusicPlaylistViewModel() { ID = musicPlaylist.ID, Naam = musicPlaylist.Naam, }; return(View(model)); }
protected async override void OnNavigatedTo(NavigationEventArgs e) { try { string currentPlaylistName = e.Parameter.ToString(); currentPlaylist = App.musicPlayerData.MusicPlaylists.Where(m => m .Name == currentPlaylistName).Single(); musicListview.ItemsSource = currentPlaylist.musicFileList; playlistNameTextbox.Text = currentPlaylist.Name; playlistQuantityTextbox.Text = "Ilość utworów: " + currentPlaylist.musicFileList.Count(); playlistDurationTextbox.Text = "Czas trwania: " + currentPlaylist.Duration .ToString(@"mm\:ss"); await Task.Delay(300); SetCurrentItem(App.musicPlayerData.CurrentMusicFile); } catch (Exception ex) { Debug.WriteLine(ex); } }
private async void MessageReceivedFromBackground(object sender, MediaPlayerDataReceivedEventArgs arguments) { object message; try { if (arguments.Data.TryGetValue(MessageType.Message.ToString(), out message)) { //It is a command, handle it Command command; if (Enum.TryParse(message.ToString(), out command)) { switch (command) { case Command.Pause: break; case Command.Play: break; } } else { Debug.WriteLine("An error occured while processing send command"); } } else if (arguments.Data.TryGetValue(MessageType.MediaPlaybackItem.ToString(), out message)) { await Task.Delay(400); MusicFileViewModel musicFile = musicPlayerData.CurrentPlaylist .musicFileList.Where(m => m.Id == message.ToString()).Single(); if (musicPlayerData.CurrentPlaylist == musicPlayerData.MainPlaylist) { MainPage.Instance.SetCurrentItem(musicFile); } else { MusicPlaylistView.Instance.SetCurrentItem(musicFile); } } else if (arguments.Data.TryGetValue(MessageType.Playlist.ToString(), out message)) { //There is a playlist to add, handle it MusicPlaylistViewModel playlist = null; string dataSeparator = "\t"; string filesSeparator = "\n"; string[] playlistData = message.ToString().Split(filesSeparator.ToCharArray().Single()); //Validate that first element in data is name of playlist if (playlistData[0].Split(dataSeparator.ToCharArray().Single()).Length != 1) { throw new Exception("Incorrect data frame"); } else { if (musicPlayerData.MusicPlaylists.Where(m => m .Name == playlistData[0]).Count() == 0) { playlist = new MusicPlaylistViewModel(playlistData[0]); //Remove first element which contains playlist name List <string> playlistList = playlistData.ToList(); playlistList.RemoveAt(0); foreach (var musicData in playlistList) { if (musicData != "") { playlist.Add(musicPlayerData.MainPlaylist.musicFileList .Where(m => m.Id == musicData).Single()); } } //Playlist is ready, add it to list musicPlayerData.AddPlaylist(playlist); } else { throw new Exception("Playlist already exists"); } } } else if (arguments.Data.TryGetValue(MessageType.CurrentPlaylist.ToString(), out message)) { if (musicPlayerData.MainPlaylist.Name == message.ToString()) { musicPlayerData.SetCurrentPlaylist(musicPlayerData.MainPlaylist); } else if (musicPlayerData.MusicPlaylists.Where(m => m.Name == message.ToString()).Count() == 1) { musicPlayerData.SetCurrentPlaylist(musicPlayerData.MusicPlaylists.Where(m => m.Name == message.ToString()).Single()); } } else if (arguments.Data.TryGetValue(MessageType.MainPlaylist.ToString(), out message)) { //Main playlist have changed, update it MusicPlaylistViewModel mainPlaylist = null; string dataSeparator = "\t"; string filesSeparator = "\n"; string[] playlistData = message.ToString().Split(filesSeparator.ToCharArray().Single()); //Validate that first element in data is name of playlist if (playlistData[0].Split(dataSeparator.ToCharArray().Single()).Length != 1) { throw new Exception("Incorrect data frame"); } else { mainPlaylist = new MusicPlaylistViewModel(playlistData[0]); //Remove first element which contains playlist name List <string> playlistList = playlistData.ToList(); playlistList.RemoveAt(0); foreach (var musicData in playlistList) { if (musicData != "") { string[] musicDetails = musicData.Split(dataSeparator.ToCharArray().Single()); if (musicDetails.Length != 4) { //Data is incomplete or corrupted, abort throw new Exception("Data is either corrupted or incomplete"); } else { MusicFileViewModel musicFile = new MusicFileViewModel(); musicFile.Id = musicDetails[0]; musicFile.Title = musicDetails[1]; musicFile.Artist = musicDetails[2]; musicFile.Duration = TimeSpan.Parse(musicDetails[3]); mainPlaylist.musicFileList.Add(musicFile); } } } //Playlist is ready, set is as current musicPlayerData.SetMainPlaylist(mainPlaylist); } } } catch (Exception ex) { Debug.WriteLine(ex); } }
/// <summary> /// Method which sets currently played playlist and notyfies /// background player /// </summary> /// <param name="playlist">Playlist to set as current</param> public void SetCurrentPlaylist(MusicPlaylistViewModel playlist) { CurrentPlaylist = playlist; App.SendMessageToBackground(MessageType.CurrentPlaylist, CurrentPlaylist.Name); }
/// <summary> /// Method which sets main playlist from given playlist /// </summary> /// <param name="playlist">Playlist to set as main</param> public void SetMainPlaylist(MusicPlaylistViewModel playlist) { MainPlaylist = playlist; MainPage.Instance.SetMainPlaylistItem(MainPlaylist); }
private void PlaylistGrid_RightTapped(object sender, RightTappedRoutedEventArgs e) { selectedPlaylistToRemove = ((Grid)sender).DataContext as MusicPlaylistViewModel; playlistRightTappedMenu.ShowAt(sender as Grid); }