Ejemplo n.º 1
0
        public void MusicDataTable_JsonIO_Test1()
        {
            var expectedMusicDataTable = new MusicDataTable();

            expectedMusicDataTable.Add(new List <MusicDataTableUnit>()
            {
                new MusicDataTableUnit
                {
                    Id               = 1,
                    Name             = "TEST MUSIC 1",
                    Genre            = "POPS & ANIME",
                    BasicLevel       = 1.0,
                    AdvancedLevel    = 3.0,
                    ExpertLevel      = 7.0,
                    MasterLevel      = 10.0,
                    BasicVerified    = false,
                    AdvancedVerified = false,
                    ExpertVerified   = false,
                    MasterVerified   = false,
                }
            });

            var path = "MusicData/JsonIOTest/json_io_test_1.json";

            var writer = new MusicDataTableJsonWriter();

            writer.Set(expectedMusicDataTable);
            writer.Write(TestUtility.GetResourcePath(path));

            var reader = new MusicDataTableJsonReader();
            var actualMusicDataTable = reader.Read(TestUtility.LoadResource(path));

            MusicDataTestUtility.AreEqual(expectedMusicDataTable, actualMusicDataTable);
        }
            public override global::System.Data.DataTable Clone()
            {
                MusicDataTable cln = ((MusicDataTable)(base.Clone()));

                cln.InitVars();
                return(cln);
            }
        public void Call(string[] args)
        {
            var arg = new Argument(args);

            var musicDataTable = new MusicDataTable();

            using (var connector = new ChunithmNetHttpClientConnector())
                using (var databaseConnector = new ChunithmMusicDatabaseHttpClientConnector(arg.DataBaseUrl))
                {
                    var currentTable = databaseConnector.GetTableAsync().GetMusicDatabaseApiResult("get current table... ");

                    connector.LoginAsync(arg.SegaId, arg.Password).GetNetApiResult("login... ");
                    connector.SelectAimeAsync(arg.AimeIndex).GetNetApiResult("selecting aime... ");

                    var musicGenre = connector.GetMusicGenreAsync(GENRE_CODE_ALL, Difficulty.Master).GetNetApiResult("downloading music list... ");
                    musicDataTable.Add(musicGenre.MusicGenre);

                    if (currentTable.MusicDataTable.GetTableUnits().Count() == musicDataTable.GetTableUnits().Count())
                    {
                        Console.WriteLine("skip update.");
                        return;
                    }

                    for (var i = 0; i < arg.MaxLevelValue; i++)
                    {
                        var musicLevel = connector.GetMusicLevelAsync(i).GetNetApiResult($"downloading level info ({i + 1}/{arg.MaxLevelValue})", false);
                        musicDataTable.Add(musicLevel.MusicLevel);
                    }

                    databaseConnector.UpdateTableAsync(musicDataTable.MusicDatas).GetMusicDatabaseApiResult("sending table... ");

                    Console.WriteLine("completed.");
                }
        }
 private void InitClass()
 {
     this.DataSetName             = "MMHistory";
     this.Prefix                  = "";
     this.Namespace               = "http://tempuri.org/MMHistory.xsd";
     this.EnforceConstraints      = true;
     this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema;
     this.tableMusic              = new MusicDataTable();
     base.Tables.Add(this.tableMusic);
 }
Ejemplo n.º 5
0
        private async void 楽曲更新ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var maxLevel = 14;
            var loadNum  = maxLevel + 1;

            Console.WriteLine($"楽曲の取得中... (1/{loadNum})");

            var   musicGenre = chunithmNetBackgroundConnector.GetMusicGenreAsync(Utility.GENRE_ALL_CODE, Difficulty.Master);
            await musicGenre;

            if (!musicGenre.Result.Success)
            {
                Console.WriteLine("!! Failed !!");
                Console.WriteLine("Error Code : " + musicGenre.Result.ErrorCode);
                Console.WriteLine(musicGenre.Result.ErrorMessage);
                return;
            }
            var musicGenreDocument = musicGenre.Result.DocumentText;

            var musicLevelDocuments = new List <string>();

            for (var i = 1; i <= maxLevel; i++)
            {
                Console.WriteLine($"楽曲の取得中... ({i + 1}/{loadNum})");
                var   musicLevel = chunithmNetBackgroundConnector.GetMusicLevelAsync(i);
                await musicLevel;
                if (!musicLevel.Result.Success)
                {
                    Console.WriteLine("!! Failed !!");
                    Console.WriteLine("Error Code : " + musicLevel.Result.ErrorCode);
                    Console.WriteLine(musicLevel.Result.ErrorMessage);
                    return;
                }
                musicLevelDocuments.Add(musicLevel.Result.DocumentText);
            }

            Console.WriteLine("Success");

            Console.WriteLine("楽曲テーブルを生成します...");

            var musicDataTable   = new MusicDataTable();
            var musicGenreParser = new MusicGenreParser();
            var musicLevelParser = new MusicLevelParser();

            musicDataTable.Add(musicGenreParser.Parse(musicGenreDocument));
            foreach (var musicLevel in musicLevelDocuments)
            {
                musicDataTable.Add(musicLevelParser.Parse(musicLevel));
            }

            var   tableUpdate = dataManagerConnector.UpdateTableAsync(musicDataTable.MusicDatas);
            await tableUpdate;

            Console.WriteLine("Success");
        }
 internal void InitVars(bool initTable)
 {
     this.tableMusic = ((MusicDataTable)(base.Tables["Music"]));
     if ((initTable == true))
     {
         if ((this.tableMusic != null))
         {
             this.tableMusic.InitVars();
         }
     }
 }
Ejemplo n.º 7
0
        // 楽曲テーブルの取得
        private static void GetMusicDataTable()
        {
            if (!UPDATE_HISTORY)
            {
                musicDataTable = new MusicDataTable();
                return;
            }

            using (var databaseConnector = new ChunithmMusicDatabaseHttpClientConnector(""))
            {
                var getTableResult = databaseConnector.GetTableAsync().Result;
                if (!getTableResult.Success)
                {
                    throw new Exception("楽曲テーブルの取得に失敗");
                }
                if (getTableResult.MusicDataTable == null)
                {
                    throw new Exception("楽曲テーブルがnull");
                }
                musicDataTable = new MusicDataTable();
                musicDataTable.Add(getTableResult.MusicDataTable);
                Console.WriteLine("楽曲テーブル取得");
            }
        }
 internal MusicRow(global::System.Data.DataRowBuilder rb) :
     base(rb)
 {
     this.tableMusic = ((MusicDataTable)(this.Table));
 }