예제 #1
0
        protected override async Task OnPostbackAsync(PostbackEvent ev)
        {
            var userId    = ev.Source.UserId;
            var gameEntry = await _tableStorage.FindGameEntryAsync(userId);

            var cardEntry = await _tableStorage.FindCardEntryAsync(userId);

            var replyToken = ev.ReplyToken;

            switch (ev.Postback.Data)
            {
            case "exit":
                await DeleteBingoEntry(replyToken, gameEntry, cardEntry);

                await new BingoMenuManager(_messagingClient).SetStartMenuAsync(userId);
                break;

            case "cancel-exit":
                await _messagingClient.ReplyMessageAsync(replyToken, "キャンセルしました。");

                break;

            case BingoMenuManager.POSTBACK_DATA_START_MENU_HINT:
                await _messagingClient.ReplyMessageAsync(replyToken, ReplyMessage_Usage);

                break;

            case BingoMenuManager.POSTBACK_DATA_GAME_MENU_HINT:
                if (gameEntry?.GameId < 0)
                {
                    await _messagingClient.ReplyMessageAsync(replyToken, ReplyMessage_Start);
                }
                else
                {
                    await _messagingClient.ReplyMessageAsync(replyToken, Help_GameEntry);
                }
                break;

            case BingoMenuManager.POSTBACK_DATA_CARD_MENU_HINT:
                if (cardEntry?.CardId < 0)
                {
                    await _messagingClient.ReplyMessageAsync(replyToken, ReplyMessage_Join);
                }
                else
                {
                    await _messagingClient.ReplyMessageAsync(replyToken, Help_CardCreated);
                }
                break;
            }
        }