Exemple #1
0
        /// <summary>
        /// 查询历史记录
        /// </summary>
        /// <param name="chatID">聊天ID</param>
        /// <returns></returns>
        public JsonResult GetChatHistoryByID(string chatID)
        {
            List <string> formatMessages = new List <string>();

            try
            {
                SPhone_Chat chat = SPhone_ChatBLL.GetChat(chatID);
                formatMessages = GetChatText(chat, string.Empty);
            }
            catch { }
            return(Jsonp(formatMessages, JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        /// <summary>
        /// 创建Chat记录
        /// </summary>
        /// <param name="enterID"></param>
        /// <param name="inneractionID"></param>
        /// <param name="fromQueue"></param>
        /// <param name="currentQueue"></param>
        /// <param name="customerID"></param>
        /// <param name="customerName"></param>
        /// <param name="machineNo"></param>
        /// <param name="mailAddress"></param>
        /// <param name="agentID"></param>
        /// <param name="isTransfer"></param>
        /// <param name="isRTO"></param>
        /// <param name="isMeeting"></param>
        /// <returns></returns>
        public ActionResult ChatCreate(string chatID, string enterID, string inneractionID, string fromQueue, string currentQueue
                                       , long?customerID, string customerName, string machineNo, string mailAddress
                                       , string agentID, long?beginDate, int isTransfer, int isMeeting)
        {
            var         result = new AjaxReturn();
            SPhone_Chat entity = new SPhone_Chat();

            entity.CreateBy = agentID;
            long ticks = Convert.ToInt64(beginDate);

            if (ticks == 0)
            {
                ticks = DateTime.Now.Ticks;
            }
            entity.CreateTime    = DateTime.MinValue.AddMilliseconds(ticks / 10000);
            entity.ChatBeginTime = entity.CreateTime;
            entity.ChatEndTime   = entity.CreateTime;

            entity.ChatID       = chatID;
            entity.ConnectionID = inneractionID;

            entity.CustomerID   = Convert.ToInt64(customerID);
            entity.CustomerName = customerName;
            entity.Enterid      = enterID;
            entity.MachineNo    = machineNo;
            entity.MailAddress  = mailAddress;
            //entity.ServicecardNo = "";
            //entity.WSISID = "";

            entity.EmployeeID       = agentID;
            entity.PlaceIP          = this.Request.UserHostAddress;
            entity.FromQueueName    = fromQueue;
            entity.CurrentQueueName = currentQueue;
            //entity.NextQueueName = "";
            entity.ContentText = string.Empty;

            entity.IsConference = isMeeting;
            entity.IsRTO        = 0;
            entity.IsTransfer   = isTransfer;
            try
            {
                SPhone_ChatBLL.AddNewChat(entity);
            }
            catch (Exception ex)
            {
                result.SetError(ex.Message);
            }
            return(Jsonp(result, JsonRequestBehavior.AllowGet));
        }
Exemple #3
0
        private void BuildChatText(SPhone_Chat chat)
        {
            string        emptyMessage = "聊天内容为空。";
            StringBuilder sb           = new StringBuilder();

            try
            {
                string chatContent = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(chat.ContentText));
                sb.AppendLine("<div class='chatContent'>");
                sb.AppendLine(string.Format("<h3> {0} </h3>", chat.ChatID));
                if (string.IsNullOrEmpty(chatContent))
                {
                    sb.AppendLine(emptyMessage);
                }
                else
                {
                    List <ChatMessage> chatMessages = JsonConvert.DeserializeObject <List <ChatMessage> >(chatContent);
                    if (chatMessages.Count == 0)
                    {
                        sb.AppendLine(emptyMessage);
                    }
                    else
                    {
                        chatMessages.ForEach(msg =>
                        {
                            string content = HttpUtility.UrlDecode(msg.FormatMessage);
                            // 替换标签URL
                            content = content.Replace("/Content/Images/emote/", "/Images/emote/");
                            sb.AppendLine(content);
                        });
                    }
                }
                sb.AppendLine("</div>");
            }
            catch { }
            if (sb.Length > 0)
            {
                this.ltlContent.Text += sb.ToString();
            }
        }
Exemple #4
0
        private List <string> GetChatText(SPhone_Chat chat, string keyword)
        {
            List <string> msgList = new List <string>();

            try
            {
                string chatContent = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(chat.ContentText));
                msgList.Add(string.Format("========= {0} ========<br />", chat.ChatID));
                if (!string.IsNullOrEmpty(chatContent))
                {
                    List <Chat.Common.ChatMessage> chatMessages = JsonConvert.DeserializeObject <List <Chat.Common.ChatMessage> >(chatContent);
                    if (!string.IsNullOrEmpty(keyword))
                    {
                        chatMessages = chatMessages.FindAll(item => item.Message.IndexOf(keyword) != -1);
                    }
                    chatMessages.ForEach(msg => msgList.Add(msg.FormatMessage));

                    msgList.Add("<br />");
                }
            }
            catch { }
            return(msgList);
        }