Ejemplo n.º 1
0
        private void SaveSession(Activity activity, BotFrameworkSession sessionData, ChatRequest request, ChatResponse chatResponse)
        {
            sessionData.ChatId    = chatResponse.ChatId;
            sessionData.Partner   = request.Partner;
            sessionData.Context   = request.Context;
            sessionData.DebugData = request.DebugData;

            memCacheService.SaveObject(activity.Conversation.Id, JsonConvert.SerializeObject(sessionData), SessionTimeout);
        }
Ejemplo n.º 2
0
        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));
        }