Example #1
0
        /// <summary>
        /// 指定されたゲームIDのリザルトを読む
        /// </summary>
        /// <param name="gameID">ゲームID</param>
        private async void readAsync(int gameID)
        {
            Contract.Requires <ArgumentOutOfRangeException>(gameID >= 0);

            if (reading)
            {
                return;
            }
            reading = true;

            gameIDTextBox.Text = gameID.ToString();

            setStatusMessage(string.Format("リザルトを読み込み中です。(ID:{0})", gameID.ToString()));

            GameResult result  = new GameResult();
            var        players = await result.LoadAsync(gameID);

            if (players == null)
            {
                setStatusMessage(string.Format("リザルトの読み込みに失敗しました。(ID:{0})", gameID.ToString()));
                reading = false;
                return;
            }

            var resultText = await createResultStringAsync(players);

            resultTextBox.Text = resultText;

            bool success = await bouyomi.SpeakAsync(resultText);

            if (success)
            {
                setStatusMessage(string.Format("リザルトの読み込みが完了しました。(ID:{0})", gameID.ToString()));
            }
            else
            {
                setStatusMessage(string.Format("棒読みちゃんに接続できません。(ID:{0})", gameID.ToString()));
            }

            reading = false;
        }