public async Task <ChunithmClientLibrary.PlayerRecord.IPlayerRecordContainer> UpdatePlayerRecordAsync()
        {
            await LoadGlobalMusicDataTable();

            DebugLogger.WriteLine("HighScoreRecord更新の開始");

            ChunithmClientLibrary.PlayerRecord.IPlayerRecordContainer record = new ChunithmClientLibrary.PlayerRecord.PlayerRecordContainer();

            var difficulties = new[]
            {
                Difficulty.Basic,
                Difficulty.Advanced,
                Difficulty.Expert,
                Difficulty.Master,
            };

            foreach (var difficulty in difficulties)
            {
                DebugLogger.WriteLine($"{difficulty} の取得");

                var   musicGenre = chunithmNetConnector.GetMusicGenreAsync(Utility.GENRE_ALL_CODE, difficulty);
                await musicGenre;
                if (!musicGenre.Result.Success)
                {
                    throw new Exception($"{difficulty}の取得に失敗しました");
                }

                var highScoreRecordTable = new HighScoreRecordTable();
                highScoreRecordTable.Add(musicGenre.Result.MusicGenre);
                record.SetTable(highScoreRecordTable, difficulty);
            }

            return(record);
        }
        public override ChunithmClientLibrary.PlayerRecord.IPlayerRecordContainer Read(string source)
        {
            var playerRecord = new ChunithmClientLibrary.PlayerRecord.PlayerRecordContainer();

            playerRecord.Basic    = new HighScoreRecord.HighScoreRecordTable();
            playerRecord.Advanced = new HighScoreRecord.HighScoreRecordTable();
            playerRecord.Expert   = new HighScoreRecord.HighScoreRecordTable();
            playerRecord.Master   = new HighScoreRecord.HighScoreRecordTable();

            var row = source.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);

            for (var i = 1; i < row.Length; i++)
            {
                var highScoreRecords = ParseRow(row[i]);
                playerRecord.GetTable(Difficulty.Basic).Add(highScoreRecords[Difficulty.Basic]);
                playerRecord.GetTable(Difficulty.Advanced).Add(highScoreRecords[Difficulty.Advanced]);
                playerRecord.GetTable(Difficulty.Expert).Add(highScoreRecords[Difficulty.Expert]);
                playerRecord.GetTable(Difficulty.Master).Add(highScoreRecords[Difficulty.Master]);
            }

            return(playerRecord);
        }