示例#1
0
        public async Task ProcessIntent(AIResponse aIResponse)
        {
            AccessToken accessToken = await _tokenManager.GetAccessTokenFromCache().ConfigureAwait(false);

            _lineMessagingClient = new LineMessagingClient(accessToken.access_token);
            var app = new LineBotApp(_lineMessagingClient);

            // try case IntentName to IntentType Enum
            IntentType intentType = IntentType.Unknown;

            if (Enum.TryParse <IntentType>(aIResponse.Result.Metadata.IntentName, out intentType))
            {
                aIResponse.Result.Metadata.IntentType = intentType;
            }

            Event tempEvent = new Event();

            switch (aIResponse.Result.Metadata.IntentType)
            {
            case IntentType.ButtonIntent:
                // Down Cast

                tempEvent = aIResponse.OriginalRequest.Event;
                MessageEvent     messageEventTemp = (MessageEvent)tempEvent;
                TextEventMessage eventMessageTemp = (TextEventMessage)messageEventTemp.Message;
                eventMessageTemp.Text = "buttons";

                break;

            default:
                break;
            }

            await app.RunAsync(new List <WebhookEvent>(){ (WebhookEvent)tempEvent });
        }
示例#2
0
        public void TextEventMessage_writes_correctly_to_file()
        {
            var message = new TextEventMessage("test");

            message.Write(writer);
            var expectedOutput = new byte[] { 0xff, 0x01, 0x04, 0x74, 0x65, 0x73, 0x74 };

            stream.ToArray().Should().Equal(expectedOutput);
        }