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); }
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()); } }
protected void OnConversationStart(Client firstClient, Client secondClient) { ConversationStart?.Invoke(firstClient, secondClient); }