/// <summary> /// load lib musik /// </summary> private async void InitMusic() { this.activeMusic = new Music(); this.activeMusicLibrary = new MusicLibrary(); this.musicStorageManager = new MusicStorageManager(); MusicLibrary _loadedLibrary = await this.musicStorageManager.LoadMusicLibrary(); if (_loadedLibrary != null) { this.activeMusicLibrary = _loadedLibrary; int librarySize = activeMusicLibrary.musicLibrary.Count; if (librarySize != 0) { Random musicRandomer = new Random(); this.activeMusic = activeMusicLibrary.musicLibrary[musicRandomer.Next(0, librarySize)]; this.PlayingActiveMusic(activeMusic); Debug.WriteLine("library is exist, selecting a random music >" + this.activeMusic.musicName); } else { Debug.WriteLine("library is empty >"); } this.MusicListView.DataContext = activeMusicLibrary; this.MusicListView.SelectedItem = activeMusic; } else { Debug.WriteLine("unable to load library to stage >"); } }
public async Task <bool> UpdateMusicScore(Music _music, Music.MusicMode _mode, int _highScore) { try { MusicLibrary _musicLibrary = new MusicLibrary(); _musicLibrary = await LoadMusicLibrary(); if (_musicLibrary != null) { for (int i = 0; i < _musicLibrary.musicLibrary.Count; i++) { if (_musicLibrary.musicLibrary[i].fileAccessToken == _music.fileAccessToken) { _musicLibrary.musicLibrary[i].musicPunchKey[(int)_mode].punchKeyHighScore = _highScore; break; } } await SaveMusicLibrary(_musicLibrary); } Debug.WriteLine("success updating score >"); } catch (Exception exc) { Debug.WriteLine("fail updating score >" + exc.Message); return(false); } return(true); }
/// <summary> /// Load music lib from sepcified storage location and returning its object /// </summary> /// <returns></returns> public async Task <MusicLibrary> LoadMusicLibrary() { try { XmlSerializer serializer = new XmlSerializer(typeof(MusicLibrary)); string loadedString = string.Empty; try { StorageFile saveFile = await this.saveFolder.GetFileAsync(this.musicLibraryFile); loadedString = await FileIO.ReadTextAsync(saveFile); Debug.WriteLine("success loading library > " + saveFile); } catch (Exception exc) { Debug.WriteLine("loading music failed > " + exc.InnerException.Message.ToString()); } if (loadedString != string.Empty) { MusicLibrary loadedMusicLibrary = (MusicLibrary)serializer.Deserialize(new StringReader(loadedString)); return(loadedMusicLibrary); } else { return(null); } } catch (Exception exct) { Debug.WriteLine("deserialization music lib fail > " + exct.InnerException.Message.ToString()); } return(null); }
/// <summary> /// save inputted music lirary obj to specified file location /// </summary> /// <param name="_musicLibrary"></param> /// <returns></returns> public async Task <bool> SaveMusicLibrary(MusicLibrary _musicLibrary) { try { XmlSerializer _serializer = new XmlSerializer(typeof(MusicLibrary)); StringWriter _stringWriter = new StringWriter(); _serializer.Serialize(_stringWriter, _musicLibrary); string _serializedString = _stringWriter.ToString(); StorageFile _saveFile = await this.saveFolder.CreateFileAsync(this.musicLibraryFile, Windows.Storage.CreationCollisionOption.ReplaceExisting); await FileIO.WriteTextAsync(_saveFile, _serializedString); Debug.WriteLine("success saving library > " + _saveFile); return(true); } catch (Exception exc) { Debug.WriteLine("serializtion and saving music library failed >" + exc.InnerException.Message.ToString()); return(false); } }