private async Task <Activity> ProcessUserMessage(Activity activity, string partner, string context, string channel, string userId, bool dummyMode, ChatWeb.Services.ChatEngine chatEngine) { //set the property to our new object log4net.LogicalThreadContext.Properties["interactionId"] = Guid.NewGuid().ToString(); var sessionRawData = memCacheService.GetObject <string>(activity.Conversation.Id); ChatRequest request = null; BotFrameworkSession sessionData = null; if ((sessionRawData == null) || ((activity.Text != null) && (activity.Text.StartsWith("-new")))) { sessionData = new BotFrameworkSession(); request = CreateNewChat(activity, partner, context, channel, userId, dummyMode); if (request == null) { return(activity.CreateReply("Unsupported partner", "en")); } } else { sessionData = JsonConvert.DeserializeObject <BotFrameworkSession>(sessionRawData); request = new ChatRequest() { ChatId = sessionData.ChatId, UserInput = activity.Text, Channel = channel, UserName = activity.From.Name, Partner = sessionData.Partner, Context = sessionData.Context, DebugData = sessionData.DebugData, ClientData = new ChatClientData { ClientName = "Bot Connector", ClientVersion = "0.0.0.", ClientIp = "0.0.0.0" } }; } ChatResponse chatResponse = await chatEngine.HandleRequest(request); SaveSession(activity, sessionData, request, chatResponse); return(CreateReply(activity, chatResponse)); }
public async Task <ChatResponse> HandleRequest(ChatRequest request) { return(await chatEngine.HandleRequest(request)); }