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));
        }
Ejemplo n.º 2
0
 /// <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();
     }
 }
Ejemplo n.º 3
0
 /// <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);
 }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
 /// <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);
         });
     }
 }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 /// <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);
            }
        }
Ejemplo n.º 12
0
        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);
            }
        }
Ejemplo n.º 13
0
 /// <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);
 }
Ejemplo n.º 14
0
 /// <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);
 }
Ejemplo n.º 15
0
 private void PlaylistGrid_RightTapped(object sender, RightTappedRoutedEventArgs e)
 {
     selectedPlaylistToRemove = ((Grid)sender).DataContext as MusicPlaylistViewModel;
     playlistRightTappedMenu.ShowAt(sender as Grid);
 }