public Conversation StartConversation(ConversationStartRequest startRequest)
        {
            ParameterValidator.IsNotNullOrWhiteSpace(startRequest.To, "to");
            ParameterValidator.IsNotNullOrWhiteSpace(startRequest.ChannelId, "channelId");
            ParameterValidator.IsNotNull(startRequest.Type, "type");
            ParameterValidator.IsNotNull(startRequest.Content, "content");

            var resource = new ConversationStart(startRequest);

            restClient.Create(resource);

            return(resource.Object as Conversation);
        }
Пример #2
0
        protected void GetBotOutputs()
        {
            var bid   = GetVar("BOT_ID");
            var cid   = GetVar("CONVERSATION_ID");
            var convo = Client.ConversationstoreConversationsSimpleAsync(cid, false, true, null).Result;

            if (!ConversationStart.ContainsKey(cid))
            {
                ConversationStart[cid] = convo.ConversationOutputs.First();
            }
            var outputs      = convo.ConversationOutputs.Last();
            var quickReplies = outputs.ContainsKey("quickReplies") ? (JArray)outputs["quickReplies"] : null;
            var input        = outputs.ContainsKey("input") ? (string)(outputs["input"]) : "";
            var expressions  = outputs.ContainsKey("expressions") ? (string)(outputs["expressions"]) : "";
            var intents      = outputs.ContainsKey("intents") ? ((JArray)(outputs["intents"])).ToObject <string[]>() : Array.Empty <string>();
            var output       = outputs.ContainsKey("output") ? ((JArray)(outputs["output"])).ToObject <string[]>() : Array.Empty <string>();
            var actions      = outputs.ContainsKey("actions") ? ((JArray)(outputs["actions"])).ToObject <string[]>() : Array.Empty <string>();
            var httpCalls    = outputs.ContainsKey("httpCalls") ? ((JObject)(outputs["httpCalls"])) : null;

            if (output.Length > 0)
            {
                foreach (var o in output)
                {
                    SayInfoLine(o);
                }
            }
            if (quickReplies != null)
            {
                QuickReplies = new string[quickReplies.Count];
                int i = 0;
                foreach (dynamic qr in quickReplies)
                {
                    SayInfoLine("{0}. {1}", i + 1, qr.value);
                    QuickReplies[i++] = qr.value;
                }
            }
            else
            {
                QuickReplies = null;
            }
            if (output.Length > 0)
            {
                LastOutput = output;
            }
            if (actions.Length > 0)
            {
                SayInfoLineIfDebug("Bot actions: {0}", actions.Aggregate((s1, s2) => s1 + " " + s2));
            }
            if (intents.Length > 0)
            {
                SayInfoLineIfDebug("Bot intents: {0}", intents.Aggregate((s1, s2) => s1 + " " + s2));
            }
            if (!string.IsNullOrEmpty(expressions))
            {
                SayInfoLineIfDebug("Bot expressions: {0}.", expressions);
            }
            if (httpCalls != null)
            {
                SayInfoLineIfDebug("HTTP calls {0}", httpCalls.ToString());
            }
        }
Пример #3
0
 protected void OnConversationStart(Client firstClient, Client secondClient)
 {
     ConversationStart?.Invoke(firstClient, secondClient);
 }