コード例 #1
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
        public void CreatePlaylist(string playlistName)
        {
            var playlist = new Playlist
            {
                PlaylistName = playlistName
            };

            playlistRepository.InsertOrUpdate(playlist);
            Playlists.Add(playlist);
        }
コード例 #2
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
        public Playlist CreateTemporaryPlaylist(string folderPath)
        {
            var playlist = new Playlist
            {
                PlaylistName = Guid.NewGuid().ToString(),
            };

            var songs = songService.CreateSongsFromFilesInFolder(folderPath);
            songs.ForEach(x => playlist.Songs.Add(x));

            return playlist;
        }
コード例 #3
0
ファイル: PlaylistRepository.cs プロジェクト: JLignell/Jokify
        public void InsertOrUpdate(Playlist playlist)
        {
            var existing = userSettings.Playlists.FirstOrDefault(x => x.PlaylistId == playlist.PlaylistId);

            if (existing != null)
            {
                userSettings.Playlists[userSettings.Playlists.IndexOf(existing)] = playlist;
            }
            else
            {
                userSettings.Playlists.Add(playlist);
            }
        }
コード例 #4
0
ファイル: PlaylistViewModel.cs プロジェクト: JLignell/Jokify
 public void Initialize(Playlist playlist = null)
 {
     if (playlist == null)
     {
         DisplayName = "Create a new playlist";
         Playlist = new Playlist { PlaylistName = String.Empty };
         PlaylistName = String.Empty;
     }
     else
     {
         DisplayName = "Rename playlist";
         Playlist = playlist;
         PlaylistName = playlist.PlaylistName;
     }
 }
コード例 #5
0
ファイル: MainViewModel.cs プロジェクト: JLignell/Jokify
        /// <summary>
        ///     Sorts the songs in a playlist
        /// </summary>
        /// <param name="property"></param>
        private void Sort(string property)
        {
            if (!String.IsNullOrEmpty(property))
            {
                Playlist playlist = playlistService.SortSongsInPlaylist(property, SelectedPlaylist);

                if (currentPlaylist != null && SelectedPlaylist.PlaylistId == currentPlaylist.PlaylistId)
                {
                    activeIndex = playlist.Songs.IndexOf(CurrentSong);
                    currentPlaylist = playlist;
                    SelectedPlaylist = playlist;
                }
            }
        }
コード例 #6
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
 public void AddSongsToPlaylist(Playlist playlist, List<Song> songs)
 {
     songs.ForEach(x => playlist.Songs.Add(x));
     playlistRepository.InsertOrUpdate(playlist);
 }
コード例 #7
0
ファイル: MainViewModel.cs プロジェクト: JLignell/Jokify
        /// <summary>
        ///     Opens a playlist
        /// </summary>
        public void OpenPlaylist()
        {
            try
            {
                if (SelectedPlaylist != null)
                {
                    playlistService.LoadPlaylist(SelectedPlaylist);

                    if (currentPlaylist == null || currentPlaylist.PlaylistName.Equals(SelectedPlaylist.PlaylistName))
                    {
                        currentPlaylist = SelectedPlaylist;
                        activeIndex = currentPlaylist.Songs.IndexOf(CurrentSong);
                    }

                    NumberOfSongsInPlaylist = SelectedPlaylist.Songs.Count + " songs";
                }
            }
            catch (Exception ex)
            {
                dialogService.ShowMessageBox(ex.ToString());
            }
        }
コード例 #8
0
ファイル: MainViewModel.cs プロジェクト: JLignell/Jokify
 /// <summary>
 ///     Play selected item in song list
 /// </summary>
 public void PlaySelected()
 {
     try
     {
         if (SelectedMediaInList != null && SelectedMediaInList != CurrentSong)
         {
             OpenSong(SelectedMediaInList);
             activeIndex = SelectedPlaylist.Songs.IndexOf(SelectedMediaInList);
             if (currentPlaylist == null || !currentPlaylist.PlaylistName.Equals(SelectedPlaylist.PlaylistName))
                 currentPlaylist = SelectedPlaylist;
         }
     }
     catch (Exception ex)
     {
         dialogService.ShowMessageBox(ex.ToString());
     }
 }
コード例 #9
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
        public Playlist CreateTemporaryPlaylist(List<string> files)
        {
            var playlist = new Playlist
            {
                PlaylistName = Guid.NewGuid().ToString(),
            };

            var songs = songService.CreateSongsFromFiles(files);
            songs.ForEach(x => playlist.Songs.Add(x));

            return playlist;
        }
コード例 #10
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
 public void DeletePlaylist(Playlist playlist)
 {
     playlistRepository.Remove(playlist);
     Playlists.Remove(playlist);
 }
コード例 #11
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
 public void LoadPlaylist(Playlist playlist)
 {
     Songs.Clear();
     playlist.Songs.ForEach(x => Songs.Add(x));
 }
コード例 #12
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
        public void InsertOrUpdatePlaylist(Playlist playlist)
        {
            if (Playlists.All(x => x.PlaylistId != playlist.PlaylistId))
            {
                Playlists.Add(playlist);
            }

            playlistRepository.InsertOrUpdate(playlist);
            playlistRepository.SaveChanges();
        }
コード例 #13
0
ファイル: PlaylistRepository.cs プロジェクト: JLignell/Jokify
 public void Remove(Playlist playlist)
 {
     userSettings.Playlists.Remove(playlist);
     SaveChanges();
 }
コード例 #14
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
        public void UpdateMusicLibrary()
        {
            if (String.IsNullOrEmpty(Settings.Default.LibraryPath))
            {
                Settings.Default.LibraryPath = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
                Settings.Default.Save();
            }

            var playlist = new Playlist { PlaylistName = "Music Library" };
            var songs = songService.CreateSongsFromFilesInFolder(Path.GetFullPath(Settings.Default.LibraryPath));
            AddSongsToPlaylist(playlist, songs);
            Playlists.Insert(0, playlist);
            playlistRepository.InsertOrUpdate(playlist);
            playlistRepository.SaveChanges();
            LoadPlaylist(playlist);
        }
コード例 #15
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
 public Playlist SortSongsInPlaylist(string property, Playlist playlist)
 {
     var tempPlaylist = new Playlist { PlaylistName = playlist.PlaylistName };
     tempPlaylist.Songs.AddRange(sortService.PerformSorting(property, playlist.Songs));
     LoadPlaylist(tempPlaylist);
     return tempPlaylist;
 }
コード例 #16
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
 public void RemoveSongsFromPlaylist(Playlist playlist, List<Song> songs)
 {
     songs.ForEach(x => playlist.Songs.Remove(x));
     playlistRepository.InsertOrUpdate(playlist);
 }
コード例 #17
0
ファイル: PlaylistService.cs プロジェクト: JLignell/Jokify
 public void LoadSongsInPlaylist(Playlist playlist)
 {
     Songs.Clear();
 }