예제 #1
0
        public static async void DeletePlayListAsync(Model.PlayList p)
        {
            StorageFolder allPLfolder = ApplicationData.Current.LocalFolder;
            StorageFile   allPLFile   = await allPLfolder.CreateFileAsync(FILE_NAME, CreationCollisionOption.OpenIfExists);

            StorageFolder tempfolder = ApplicationData.Current.LocalFolder;
            StorageFile   tempFile   = await tempfolder.CreateFileAsync(FILE_NAME3, CreationCollisionOption.OpenIfExists);

            var allplines = await FileIO.ReadLinesAsync(allPLFile);

            foreach (var pline in allplines)
            {
                if (pline != "")
                {
                    if (!pline.Contains(p.PlayListName))
                    {
                        var tline = pline + Environment.NewLine;
                        await FileIO.AppendTextAsync(tempFile, tline);
                    }
                }
            }

            await tempFile.CopyAndReplaceAsync(allPLFile);

            await tempFile.DeleteAsync();
        }
예제 #2
0
        /// <summary>
        /// Gets all playlist file names from a text file in local storage called AllPlayListFileNames.txt
        /// Goes to each file path and get playlistname and all its songids
        /// put it in a playlist
        /// </summary>
        /// <returns>collection of PlayList</returns>
        public static async Task <ICollection <Model.PlayList> > GetAllPlayListsAsync()
        {
            List <Model.PlayList> playlists   = new List <Model.PlayList>();
            StorageFolder         allPLfolder = ApplicationData.Current.LocalFolder;
            StorageFile           allPLFile   = await allPLfolder.CreateFileAsync(FILE_NAME, CreationCollisionOption.OpenIfExists);

            var allplines = await FileIO.ReadLinesAsync(allPLFile);

            foreach (var pline in allplines)
            {
                if (pline != "")
                {
                    StorageFolder PLfolder = ApplicationData.Current.LocalFolder;
                    StorageFile   PLFile   = await PLfolder.GetFileAsync(pline);

                    var line = await FileIO.ReadTextAsync(PLFile);

                    var plData   = line.Split(',');
                    var playlist = new Model.PlayList();

                    //read data from file and put in a playlist
                    playlist.PlayListName = plData[0];

                    for (int i = 1; i < plData.Length; i++)
                    {
                        if (plData[i] != "\r\n")
                        {
                            playlist.PlayListSongIDs.Add(Convert.ToInt32(plData[i]));
                        }
                    }
                    playlist.PlayListFilePath = pline;

                    playlists.Add(playlist);
                }
            }

            return(playlists);
        }
 public void AddSongtoPlayList(PlayList p)
 {
     //add song to playlist on file
     PlayListFileHelper.WritePlayListToFileAsync(p);
 }
 public void DeletePlayList(PlayList p)
 {
     // delete playlist from file
     PlayListFileHelper.DeletePlayListAsync(p);
 }
예제 #5
0
        /// <summary>
        /// Write a playlist with its song is to a txt file in local storage
        /// write playlist name in text file that has a collection of playlists
        /// checks to see if playlist exist before adding in this collection
        /// </summary>
        /// <param name="song">the song you want to save</param>
        public static async void WritePlayListToFileAsync(Model.PlayList playlist)
        {
            var songcount = 0;

            StorageFolder PLlocalFolder = ApplicationData.Current.LocalFolder;
            StorageFile   PLFile        = await PLlocalFolder.CreateFileAsync(playlist.PlayListName, CreationCollisionOption.OpenIfExists);

            var plData = $"{playlist.PlayListName},";


            //check if playlist does not have songs

            if (playlist.PlayListSongIDs == null)
            {
                songcount = 0;
            }
            else
            {
                songcount = playlist.PlayListSongIDs.Count;
            }
            //add all song ids in file
            if (songcount > 0)
            {
                for (int i = 0; i < songcount; i++)
                {
                    plData = plData + $"{playlist.PlayListSongIDs[i].ToString()},";
                }

                // plData = plData + $"{playlist.PlayListSongIDs[songcount - 1].ToString()}";
            }
            plData = plData + Environment.NewLine;



            var oldplData = await FileIO.ReadTextAsync(PLFile);

            bool rewrite = false;

            if (oldplData != "")
            {
                var oldplDatasongs = oldplData.Split(',');

                //not including playlistname and newline
                var oldplDatacount = oldplDatasongs.Length - 2;
                if (songcount > oldplDatacount)
                {
                    rewrite = true;
                }
            }
            //overwite the playlist data if already exist , writes if it is new
            //await FileIO.WriteTextAsync(PLFile, plData);

            //save the playlist name in AllPlayListFileNames.txt"

            StorageFolder allPLfolder = ApplicationData.Current.LocalFolder;
            StorageFile   allPLFile   = await allPLfolder.CreateFileAsync(FILE_NAME, CreationCollisionOption.OpenIfExists);

            var allplines = await FileIO.ReadLinesAsync(allPLFile);

            //checks if playlist name is already in allplaylist file
            bool exist = false;

            foreach (var pline in allplines)
            {
                if (pline != null)
                {
                    if (pline == playlist.PlayListName)
                    {
                        exist = true;
                    }
                }
            }
            //playlist does not exist and should be added
            if (exist == false)
            {
                //writes create new playlist
                await FileIO.WriteTextAsync(PLFile, plData);

                var playlistfilename = playlist.PlayListName + Environment.NewLine;
                await FileIO.AppendTextAsync(allPLFile, playlistfilename);
            }
            else
            {
                if (rewrite == false)
                {
                    var messageDialog = new MessageDialog("The playlist name already exist.Please chose another one");
                    // Show the message dialog
                    await messageDialog.ShowAsync();

                    return;
                }
                else
                {
                    //overwite the playlist data if already exist
                    await FileIO.WriteTextAsync(PLFile, plData);
                }
            }
        }
예제 #6
0
        public static async Task <bool> IsDuplicateNewPlaylistAsync(Model.PlayList playlist)
        {
            var isduplicate = false;
            var songcount   = 0;

            StorageFolder PLlocalFolder = ApplicationData.Current.LocalFolder;
            StorageFile   PLFile        = await PLlocalFolder.CreateFileAsync(playlist.PlayListName, CreationCollisionOption.OpenIfExists);

            var plData = $"{playlist.PlayListName},";


            //check if playlist does not have songs

            if (playlist.PlayListSongIDs == null)
            {
                songcount = 0;
            }
            else
            {
                songcount = playlist.PlayListSongIDs.Count;
            }

            var oldplData = await FileIO.ReadTextAsync(PLFile);

            bool rewrite = false;

            if (oldplData != "")
            {
                var oldplDatasongs = oldplData.Split(',');

                //not including playlistname and newline
                var oldplDatacount = oldplDatasongs.Length - 2;
                if (songcount > oldplDatacount)
                {
                    rewrite = true;
                }
            }
            //check if playlist exist

            StorageFolder allPLfolder = ApplicationData.Current.LocalFolder;
            StorageFile   allPLFile   = await allPLfolder.CreateFileAsync(FILE_NAME, CreationCollisionOption.OpenIfExists);

            var allplines = await FileIO.ReadLinesAsync(allPLFile);

            //checks if playlist name is already in allplaylist file
            bool exist = false;

            foreach (var pline in allplines)
            {
                if (pline != null)
                {
                    if (pline == playlist.PlayListName)
                    {
                        exist = true;
                    }
                }
            }
            //playlist does not exist and should be added
            if (exist == true)
            {
                if (rewrite == false)
                {
                    isduplicate = true;;
                }
            }
            return(isduplicate);
        }