コード例 #1
0
        public static List <PlaylistSong> GeneratePlayList(string playListName, int minutes)
        {
            List <PlaylistSong> playlistSongList = new List <PlaylistSong>();
            List <Song>         workingList      = CDCatalogManager.GetSongs(); //TODO: Filter songs based on Genre and/or Rating.
            int seconds = (minutes * 60);                                       //Song lengths are stored in seconds, but the user selects a playlist duration in minutes.

            Playlist playlist = new Playlist();

            playlist.PlaylistName = playListName; //TODO: Consider checking for and preventing duplicate names.
            CDCatalogManager.AddPlaylist(playlist);

            playlistSongList = CombinationsPlaylist(workingList, playlist, seconds); //Works speedily now.
            //playlistSongList = RandomPlayList(workingList, seconds, playlist);  //My prior algorithm, which did not guarantee a return.

            return(playlistSongList);
        }
コード例 #2
0
        public static int CreatePlaylistGo(string playListName, int minutes)
        {
            //Generate a random Playlist of the length specified.
            subWindowPlaylistSongs.Clear();
            Song songObject    = new Song();
            int  totalDuration = 0;

            if (minutes > 0)
            {
                List <PlaylistSong> playlistSongList = GeneratePlayList(playListName, minutes).OrderBy(pls => pls.SongOrder).ToList();
                for (int i = 0; i < playlistSongList.Count; i++)
                {
                    PlaylistSong pls = playlistSongList[i];
                    songObject = CDCatalogManager.GetSongs().Where(s => s.SongID.Equals(pls.SongID)).First();
                    subWindowPlaylistSongs.Add(songObject);
                    totalDuration += songObject.TrackLength;
                }
            }
            return(totalDuration);
        }
コード例 #3
0
 public static void GetAllSongs()
 {
     displaySongList = CDCatalogManager.GetSongs();
 }
コード例 #4
0
        public static bool AddSongGo(string title, Artist artist, Album album, string trackIn, Genre genre,
                                     string minutes, string seconds, int rating, out string message)
        {
            //Validate the input fields from the AddSong window, then add the Song to the model.
            bool isValid = true;

            message = "";
            int tracknum      = 0;
            int trackminutes  = 0;
            int trackseconds  = 0;
            int doesSongExist = CDCatalogManager.GetSongs().Where(s => s.SongTitle.Equals(title)).Where(
                s => s.AlbumID.Equals(album.AlbumID)).Where(
                s => s.ArtistID.Equals(artist.ArtistID)).Count();

            if (doesSongExist != 0)
            {
                isValid  = false;
                message += "A Song by this Artist on this Album already exists in the database.";
            }
            if (title == "")
            {
                isValid  = false;
                message += "Song Title cannot be blank.\n";
            }
            if (null == artist)
            {
                isValid  = false;
                message += "Please select an Artist.\n";
            }
            if (null == album)
            {
                isValid  = false;
                message += "Please select an Album.\n";
            }
            if (!int.TryParse(trackIn, out tracknum) || tracknum < 0)
            {
                isValid  = false;
                message += "Track # must be a nonnegative integer.\n";
            }
            if (null == genre)
            {
                isValid  = false;
                message += "Please select a Genre.\n";
            }
            if (minutes != "")
            {
                if (!int.TryParse(minutes, out trackminutes) || trackminutes < 0)
                {
                    isValid  = false;
                    message += "Track minutes must be a nonnegative integer or blank.\n";
                }
            }
            if (!int.TryParse(seconds, out trackseconds) || trackseconds < 1)
            {
                isValid  = false;
                message += "Track seconds must be a positive integer.\n";
            }

            if (isValid)
            {
                Song song = new Song();
                song.SongTitle   = title;
                song.ArtistID    = artist.ArtistID;
                song.AlbumID     = album.AlbumID;
                song.TrackNumber = tracknum;
                song.GenreID     = genre.GenreID;
                song.TrackLength = ((trackminutes * 60) + trackseconds);
                song.Rating      = rating;
                CDCatalogManager.AddSong(song);
            }


            return(isValid);
        }