/// <summary> /// 客服主动邀请对话 /// </summary> /// <param name="operatorId">客服ID</param> /// <param name="visitorId"></param> public static Chat OperatorRequestChat(string operatorId, string visitorId) { Trace.WriteLine(string.Format("ChatService.OperatorRequestChat(OperatorId = {0},VisitorId = {1})", operatorId, visitorId)); Visitor visitor = VisitorService.GetVisitorById(visitorId); Operator op = OperatorService.GetOperatorById(operatorId); if (visitor == null || op == null) { Trace.WriteLine(string.Format("Error: ChatService.OperatorRequestChat({0},{1}) error Opertor or Visitor is null", operatorId, visitorId)); return(null); } Chat chat = new Chat(); chat.IsInviteByOperator = true; chat.CreateBy = op.NickName; chat.CreateTime = DateTime.Now; chat.LastCheckTime = DateTime.Now.Ticks; chat.AccountId = op.AccountId; chat.VisitorId = visitorId; chat.OperatorId = operatorId; chats.Add(chat); Provider.AddChat(chat); op.Status = OperatorStatus.InviteChat;//将客服改为请求中 chat.Status = ChatStatus.Requested; //VisitSessionService.SetSessionStatus(visitor.CurrentSessionId, VisitSessionStatus.ChatRequesting); if (OperatorChatRequest != null) { var req = new OperatorChatRequestEventArgs(operatorId, visitorId, chat); OperatorChatRequest(null, req); } Message m = new Message(); m.ChatId = chat.ChatId; m.Text = "正在邀请访客,请稍等..."; m.Type = MessageType.SystemMessage_ToOperator; SendMessage(m, DateTime.Now.AddMilliseconds(50)); return(chat); }