Example #1
0
        public void Init(CardDataBase carddb)
        {
            int カード名別持ってるカード  = carddb.getAllCardNumHave();
            int カード名全カード      = carddb.getAllCardNum();
            int 略号別持ってるカード    = carddb.getCardNumCodeHave();
            int 略号別全カード       = carddb.getCardNumCode();
            int レアリティ別持ってるカード = carddb.getCardNumRarityHave();
            int レアリティ別全カード    = carddb.getCardNumRarity();

            /*
             * foreach (var card in cardlist)
             * {
             * foreach (var variation in card.ListVariations)
             * {
             * foreach (var rarity in variation.ListRarity)
             * {
             *                      レアリティ別全カード++;
             *                      if (rarity.所持フラグ)
             *                              レアリティ別持ってるカード++;
             *              }
             *              略号別全カード++;
             *              if (variation.IsCardHavePack())
             *                      略号別持ってるカード++;
             *      }
             *      カード名全カード++;
             *      if (card.IsCardHaveName())
             *              カード名別持ってるカード++;
             *
             * }
             */

            label2.Text  = カード名別持ってるカード.ToString();
            label4.Text  = カード名全カード.ToString();
            label8.Text  = 略号別持ってるカード.ToString();
            label7.Text  = 略号別全カード.ToString();
            label13.Text = レアリティ別持ってるカード.ToString();
            label12.Text = レアリティ別全カード.ToString();

            if (カード名全カード > 0 && 略号別全カード > 0 && レアリティ別全カード > 0)
            {
                label5.Text  = ((double)カード名別持ってるカード / カード名全カード).ToString("F") + "%";
                label10.Text = ((double)略号別持ってるカード / 略号別全カード).ToString("F") + "%";
                label15.Text = ((double)レアリティ別持ってるカード / レアリティ別全カード).ToString("F") + "%";
            }
            else
            {
                label5.Text  = "0%";
                label10.Text = "0%";
                label15.Text = "0%";
            }
        }
Example #2
0
		private async void 両方取得ToolStripMenuItem_Click(object sender, EventArgs e)
		{
			var menuitem = (ToolStripMenuItem)sender;
			bool IsPackSearch = false;
			bool IsCardSearch = false;
			if (menuitem.Name.Contains("パック")) IsPackSearch = true;
			if (menuitem.Name.Contains("カード")) IsCardSearch = true;

			int 推測探索秒 = 0;
			if (IsPackSearch) 推測探索秒 += 1800;
			if (IsCardSearch) 推測探索秒 += (int)(config.CardID_MAX - config.CardID_MIN);

			//メッセージボックスを表示する
			DialogResult result = MessageBox.Show($"捜索には{推測探索秒 / 60}分程度かかることが予測されます。\n本当に始めますか?", "",
				MessageBoxButtons.YesNo,
				MessageBoxIcon.Exclamation,
				MessageBoxDefaultButton.Button2);

			if (result == DialogResult.No) return;

			var sw = new System.Diagnostics.Stopwatch();
			sw.Start();

			InvalidMenuItem();

			string ans = "";
			List<string> ErrorList = new List<string>();

			//breakで抜けるためのdo-while(false)
			do
			{

				if (IsPackSearch)
				{
					//公式サイトにアクセスして、全パックを取得する パックのタイプを取得するため必要
					var newdatalist = await GetAllPacks.getAllPackDatasAsync(config.URL, this);
					if (newdatalist == null) break;

					//新しいデータを追加し、古いデータは上書きする
					(int newnum, int updatenum) = PackDB.AddPackDataList(newdatalist);


					Program.SavePackData();

					ans += "パックの情報の取得が完了しました。\n全パック種類:" + PackDB.PackDataList.Count + $"\nうち{newnum}件が新しいデータとして登録され、{updatenum}件が更新されました。\n";
				}

				if (IsCardSearch)
				{
					var newcardDB = await GetAllCards.getAllCardsAsync(config, this, ErrorList);

					if (newcardDB == null) break;

					//新しいデータを追加し、古いデータは上書きする
					(int newnum, int updatenum) tmp = CardDB.AddCardDataList(newcardDB.CardList);

					Program.SaveCardData();

					ans += "カード情報の取得が終了しました。\n全カード種類:" + CardDB.getAllCardNum() +
						$"\nうち{tmp.newnum}件が新しいデータとして登録され、\n{tmp.updatenum}件が更新されました。\n";
				}

			} while (false);


			ValidMenuItem();

			sw.Stop();
			TimeSpan ts = sw.Elapsed;

			string msg = ans + $"エラー件数:{ErrorList.Count}件\n" + Program.ToJson(ErrorList, Newtonsoft.Json.Formatting.None) + $"\nかかった時間:{ts.Hours}時間 {ts.Minutes}分 {ts.Seconds}秒 {ts.Milliseconds}ミリ秒";
			Program.WriteLog(msg, LogLevel.必須項目);
			MessageBox.Show(msg
				, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
		}