示例#1
0
        /// <summary>
        /// Ajoute la musique passée en paramètre à la librarie sauf si elle est déjà présente.
        /// Appelle "AddArtist" si l'artiste n'est pas déjà présent dans la librairie.
        /// Appelle "AddSong" de l'artiste saisie.
        /// Si un album a été saisie,
        ///     appelle "AddAlbum" si l'album n'est pas déjà présent dans la librairie.
        ///     appelle "AddSong" de l'album saisie.
        /// </summary>
        /// <param name="Track"></param>
        public void AddSong(Song Track)
        {
            if (Track == null)
            {
                return;
            }

            if (ListSong.Contains(Track))
            {
                Console.WriteLine("Cette musique est déjà présente dans la librarie");
                return;
            }
            ListSong.Add(Track);
            Length = Length.Addition(Track.Length);

            if (!ListArtist.Contains(Track.Artist))
            {
                AddArtist(Track.Artist);
            }
            ListArtist[ListArtist.IndexOf(Track.Artist)].AddSong(Track);

            if (Track.Album.Name != "Unknown")
            {
                if (!ListAlbum.Contains(Track.Album))
                {
                    AddAlbum(Track.Album);
                }
                ListAlbum[ListAlbum.IndexOf(Track.Album)].AddSong(Track);
            }
        }
示例#2
0
        /// <summary>
        /// Supprime la musique passée en paramètre de la toute la librarie sauf si elle n'est pas présente dedans.
        /// </summary>
        /// <param name="Track"></param>
        public void DeleteSong(Song Track)
        {
            ListSong.Remove(Track);
            Length = Length.Substraction(Track.Length);

            if (Track.Album.Name != "Unknown")
            {
                int i;
                i = ListAlbum.IndexOf(Track.Album);
                ListAlbum[i].DeleteSong(Track);

                if (ListAlbum[i].ListSong.Count() == 0)
                {
                    DeleteAlbum(ListAlbum[i]);
                }
            }

            foreach (var playlist in ListPlaylist)
            {
                if (playlist.ListSong.Contains(Track))
                {
                    playlist.DeleteSong(Track);
                }
            }

            int it;

            it = ListArtist.IndexOf(Track.Artist);
            ListArtist[it].DeleteSong(Track);
            if (ListArtist[it].ListSong.Count == 0)
            {
                DeleteArtist(Track.Artist);
            }
        }