Example #1
0
    /// <summary>
    /// 页面请求对话
    /// </summary>
    /// <param name="CurrentVisitor"></param>
    /// <returns>ChatId</returns>
    public static string ChatPageRequestChat(Visitor visitor)
    {
        Trace.WriteLine(string.Format("ChatService.ChatPageRequestChat(Visitor = {0})", visitor));
        if (!string.IsNullOrEmpty(visitor.Name))
        {
            Visitor vs = VisitorService.GetVisitorById(visitor.VisitorId);
            vs.Name = visitor.Name;
            VisitorService.UpdateVisitor(vs);
        }
        Chat chatRequest = new Chat();

        chatRequest.AccountId  = visitor.AccountId;
        chatRequest.CreateTime = DateTime.Now;
        chatRequest.Status     = ChatStatus.Requested;
        chatRequest.VisitorId  = visitor.VisitorId;

        chats.Add(chatRequest);
        Provider.AddChat(chatRequest);

        VisitSession s = VisitSessionService.GetSessionById(visitor.CurrentSessionId);

        s.ChatRequestTime = DateTime.Now;
        s.Status          = VisitSessionStatus.ChatRequesting;

        Message m = new Message();

        m.ChatId      = chatRequest.ChatId;
        m.Text        = "正在接入客服,请稍等...";
        m.Type        = MessageType.SystemMessage_ToVisitor;
        m.Source      = "系统";
        m.Destination = "访客";
        SendMessage(m, DateTime.Now.AddMilliseconds(100));

        if (VisitorChatRequest != null)
        {
            VisitorChatRequestEventArgs req = new VisitorChatRequestEventArgs(visitor.VisitorId, chatRequest);
            visitorChatRequests.Add(req);
            VisitorChatRequest(null, req);
        }

        return(chatRequest.ChatId);
    }