//接受请求 private void btnAccept_Click(object sender, EventArgs e) { if (drpChatRequest.SelectedItem != null) { //声音 player.Stop(); //请求信息 ChatRequestInfo req = (ChatRequestInfo)drpChatRequest.SelectedItem; drpChatRequest.Items.Remove(req); drpChatRequest.Text = string.Empty; TabPage tab = new TabPage(req.VisitorIP); LiveChat lc = new LiveChat(); lc.Tag = tabChats; lc.ChatRequest = req; lc.Dock = DockStyle.Fill; tab.Controls.Add(lc); tabChats.TabPages.Add(tab); tab.Focus(); TabInfo tabInfo = new TabInfo(); tabInfo.ChatId = req.ChatId; tabInfo.Dock = DockStyle.Fill; if (currentVisitors.ContainsKey(req.VisitorIP)) { tabInfo.RequestEntity = currentVisitors[req.VisitorIP] as RequestInfo; } //添加请求信息 chatInfo.Add(tabInfo); RefreshTabInfo(); //修改客服编号 ws.AcceptChatRequest(req.ChatId, Program.CurrentOperator.Id);//服务人员 } }
//点击传送文件 private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { WebClient myWebClient = new WebClient(); myWebClient.Credentials = CredentialCache.DefaultCredentials; String filename = openFileDialog1.FileName; FileStream fs = new FileStream(filename, FileMode.Open); byte[] fsbyte = new byte[fs.Length]; fs.Read(fsbyte, 0, Convert.ToInt32(fs.Length)); string fullname = @"c:\1\" + openFileDialog1.SafeFileName; Stream writeStream = myWebClient.OpenWrite(fullname, "PUT"); if (writeStream.CanWrite) { writeStream.Write(fsbyte, 0, Convert.ToInt32(fs.Length)); } else { MessageBox.Show("对不起,文件上传失败"); } fs.Close(); ChatRequestInfo myChatRequest = new ChatRequestInfo(); ChatMessageInfo msg = new ChatMessageInfo(); msg.MessageId = -1; msg.ChatId = myChatRequest.ChatId; msg.Message = "您可以开始下载文件"; msg.Name = "UploadOK"; msg.SentDate = DateTime.Now.ToUniversalTime().Ticks; msg.Type = 3;//* ws.AddMessage(msg); } }
public override void RemoveChatRequest(ChatRequestInfo req) { SqlConnection sqlC = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("LiveChat_ChatRequestsDelete", sqlC); cmd.CommandType = CommandType.StoredProcedure; try { cmd.Parameters.Add("@ChatID", SqlDbType.Char, 39).Value = req.ChatId; sqlC.Open(); cmd.ExecuteNonQuery(); cmd.Dispose(); sqlC.Close(); } catch { throw; } finally { if (sqlC != null) { if (sqlC.State == ConnectionState.Open) { sqlC.Close(); } sqlC.Dispose(); sqlC = null; } } }
public override string RequestChat(ChatRequestInfo request) { bool cacheExists; List <ChatRequestInfo> requests = GetCurrentRequest(out cacheExists); // Add the new requests requests.Add(request); SaveRequests(cacheExists, requests); return(request.ChatId); }
public override void RemoveChatRequest(ChatRequestInfo req) { bool cacheExists; List <ChatRequestInfo> requests = GetCurrentRequest(out cacheExists); for (int i = 0; i < requests.Count; i++) { if (requests[i].ChatId == req.ChatId) { requests.RemoveAt(i); break; } } SaveRequests(cacheExists, requests); }
public override string RequestChat(ChatRequestInfo request) { SqlConnection sqlC = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("LiveChat_ChatRequestsAdd", sqlC); cmd.CommandType = CommandType.StoredProcedure; string retVal = request.ChatId; try { cmd.Parameters.Add("@ChatID", SqlDbType.Char, 39).Value = request.ChatId; cmd.Parameters.Add("@AccountId", SqlDbType.Int).Value = request.AccountId; cmd.Parameters.Add("@VisitorIP", SqlDbType.VarChar, 50).Value = request.VisitorIP; cmd.Parameters.Add("@VisitorName", SqlDbType.VarChar, 100).Value = request.VisitorName; cmd.Parameters.Add("@VisitorEmail", SqlDbType.VarChar, 225).Value = request.VisitorEmail; cmd.Parameters.Add("@VisitorUserAgent", SqlDbType.VarChar, 125).Value = request.VisitorUserAgent; cmd.Parameters.Add("@OperatorID", SqlDbType.Int).Value = request.AcceptByOpereratorId; cmd.Parameters.Add("@RequestDate", SqlDbType.SmallDateTime).Value = request.RequestDate; sqlC.Open(); retVal = cmd.ExecuteScalar().ToString(); cmd.Dispose(); sqlC.Close(); } catch { throw; } finally { if (sqlC != null) { if (sqlC.State == ConnectionState.Open) { sqlC.Close(); } sqlC.Dispose(); sqlC = null; } } return(retVal); }
//跟据ChatID查询一行数据 public override ChatRequestInfo GetChatRequestByChatId(string chatId) { SqlConnection sqlC = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("LiveChat_ChatRequestsGetByChatID", sqlC); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader data = null; ChatRequestInfo chat = null; try { cmd.Parameters.Add("@ChatID", SqlDbType.Int).Value = chatId; sqlC.Open(); data = cmd.ExecuteReader(); if (data.Read()) { chat = new ChatRequestInfo(data); } data.Close(); data.Dispose(); data = null; cmd.Dispose(); sqlC.Close(); } catch { throw; } finally { if (sqlC != null) { if (sqlC.State == ConnectionState.Open) { sqlC.Close(); } sqlC.Dispose(); sqlC = null; } } return(chat); }
public override void RemoveChatRequest(ChatRequestInfo req) { SqlConnection sqlC = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("LiveChat_ChatRequestsDelete", sqlC); cmd.CommandType = CommandType.StoredProcedure; try { cmd.Parameters.Add("@ChatID", SqlDbType.Char, 39).Value = req.ChatId; sqlC.Open(); cmd.ExecuteNonQuery(); cmd.Dispose(); sqlC.Close(); } catch { throw; } finally { if (sqlC != null) { if (sqlC.State == ConnectionState.Open) sqlC.Close(); sqlC.Dispose(); sqlC = null; } } }
public abstract string RequestChat(ChatRequestInfo request);
public abstract void RemoveChatRequest(ChatRequestInfo req);
private void ����Ի�ToolStripMenuItem_Click(object sender, EventArgs e) { if (lstVisitors.SelectedItems.Count>0) { if (IsIP == lstVisitors.SelectedItems[0].SubItems[2].Text) { DialogResult choice = MessageBox.Show("��������û���������", "�Ƿ��ط�?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (choice == DialogResult.OK) { RequestInfo info = this.lstVisitors.SelectedItems[0].Tag as RequestInfo; ChatRequestInfo requestinfo = new ChatRequestInfo(); requestinfo.ChatId = Guid.NewGuid().ToString();//chatid requestinfo.AccountId = info.AccoutId.ToString(); requestinfo.VisitorIP = lstVisitors.SelectedItems[0].SubItems[2].Text;//IP requestinfo.AcceptByOpereratorId = Program.CurrentOperator.Id; //������Ա requestinfo.RequestDate = DateTime.Now; requestinfo.VisitorName = ""; requestinfo.VisitorEmail = ""; requestinfo.VisitorUserAgent = lstVisitors.SelectedItems[0].SubItems[4].Text;//����� requestinfo.WasAccept = false; //��Ϣ��ʾ TabPage tab = new TabPage(requestinfo.VisitorIP); LiveChat lc = new LiveChat(); lc.Tag = tabChats; lc.ChatRequest = requestinfo; lc.Dock = DockStyle.Fill; tab.Controls.Add(lc); tabChats.TabPages.Add(tab); tab.Focus(); TabInfo tabInfo = new TabInfo(); tabInfo.ChatId = requestinfo.ChatId; tabInfo.Dock = DockStyle.Fill; if (currentVisitors.ContainsKey(requestinfo.VisitorIP)) { tabInfo.RequestEntity = currentVisitors[requestinfo.VisitorIP] as RequestInfo; } //��������Ϣ chatInfo.Add(tabInfo); RefreshTabInfo(); IsIP = lstVisitors.SelectedItems[0].SubItems[2].Text; ws.TransferChat(requestinfo); //�Ŀͷ���� ws.AcceptChatRequest(requestinfo.ChatId, Program.CurrentOperator.Id);//������Ա } } else { DialogResult choice = MessageBox.Show("�Ƿ�ȷ�Ϸ�������", "YesNo?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (choice == DialogResult.Yes) { RequestInfo info = this.lstVisitors.SelectedItems[0].Tag as RequestInfo; ChatRequestInfo requestinfo = new ChatRequestInfo(); requestinfo.ChatId = Guid.NewGuid().ToString();//chatid requestinfo.AccountId = info.AccoutId.ToString(); requestinfo.VisitorIP = lstVisitors.SelectedItems[0].SubItems[2].Text;//IP requestinfo.AcceptByOpereratorId = Program.CurrentOperator.Id; //������Ա requestinfo.RequestDate = DateTime.Now; requestinfo.VisitorName = ""; requestinfo.VisitorEmail = ""; requestinfo.VisitorUserAgent = lstVisitors.SelectedItems[0].SubItems[4].Text;//����� requestinfo.WasAccept = false; ws.TransferChat(requestinfo); IsIP = lstVisitors.SelectedItems[0].SubItems[2].Text; //��Ϣ��ʾ TabPage tab = new TabPage(requestinfo.VisitorIP); LiveChat lc = new LiveChat(); lc.Tag = tabChats; lc.ChatRequest = requestinfo; lc.Dock = DockStyle.Fill; tab.Controls.Add(lc); tabChats.TabPages.Add(tab); tab.Focus(); TabInfo tabInfo = new TabInfo(); tabInfo.ChatId = requestinfo.ChatId; tabInfo.Dock = DockStyle.Fill; if (currentVisitors.ContainsKey(requestinfo.VisitorIP)) { tabInfo.RequestEntity = currentVisitors[requestinfo.VisitorIP] as RequestInfo; } //��������Ϣ chatInfo.Add(tabInfo); RefreshTabInfo(); } } } else { MessageBox.Show("�㻹û��ѡ���˭���жԻ�","��ѡ��",MessageBoxButtons.OK,MessageBoxIcon.Stop); } }
//��������ļ� private void button1_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { WebClient myWebClient = new WebClient(); myWebClient.Credentials = CredentialCache.DefaultCredentials; String filename = openFileDialog1.FileName; FileStream fs = new FileStream(filename, FileMode.Open); byte[] fsbyte = new byte[fs.Length]; fs.Read(fsbyte, 0, Convert.ToInt32(fs.Length)); string fullname = @"c:\1\" + openFileDialog1.SafeFileName; Stream writeStream = myWebClient.OpenWrite(fullname, "PUT"); if (writeStream.CanWrite) { writeStream.Write(fsbyte, 0, Convert.ToInt32(fs.Length)); } else { MessageBox.Show("�Բ����ļ��ϴ�ʧ��"); } fs.Close(); ChatRequestInfo myChatRequest = new ChatRequestInfo(); ChatMessageInfo msg = new ChatMessageInfo(); msg.MessageId = -1; msg.ChatId = myChatRequest.ChatId; msg.Message = "�����Կ�ʼ�����ļ�"; msg.Name = "UploadOK"; msg.SentDate = DateTime.Now.ToUniversalTime().Ticks; msg.Type = 3;//* ws.AddMessage(msg); } }
public override string RequestChat(ChatRequestInfo request) { bool cacheExists; List<ChatRequestInfo> requests = GetCurrentRequest(out cacheExists); // Add the new requests requests.Add(request); SaveRequests(cacheExists, requests); return request.ChatId; }
private void 邀请对话ToolStripMenuItem_Click(object sender, EventArgs e) { if (lstVisitors.SelectedItems.Count > 0) { if (IsIP == lstVisitors.SelectedItems[0].SubItems[2].Text) { DialogResult choice = MessageBox.Show("你已向该用户发出请求", "是否重发?", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (choice == DialogResult.OK) { RequestInfo info = this.lstVisitors.SelectedItems[0].Tag as RequestInfo; ChatRequestInfo requestinfo = new ChatRequestInfo(); requestinfo.ChatId = Guid.NewGuid().ToString(); //chatid requestinfo.AccountId = info.AccoutId.ToString(); requestinfo.VisitorIP = lstVisitors.SelectedItems[0].SubItems[2].Text; //IP requestinfo.AcceptByOpereratorId = Program.CurrentOperator.Id; //服务人员 requestinfo.RequestDate = DateTime.Now; requestinfo.VisitorName = ""; requestinfo.VisitorEmail = ""; requestinfo.VisitorUserAgent = lstVisitors.SelectedItems[0].SubItems[4].Text;//浏览器 requestinfo.WasAccept = false; //信息显示 TabPage tab = new TabPage(requestinfo.VisitorIP); LiveChat lc = new LiveChat(); lc.Tag = tabChats; lc.ChatRequest = requestinfo; lc.Dock = DockStyle.Fill; tab.Controls.Add(lc); tabChats.TabPages.Add(tab); tab.Focus(); TabInfo tabInfo = new TabInfo(); tabInfo.ChatId = requestinfo.ChatId; tabInfo.Dock = DockStyle.Fill; if (currentVisitors.ContainsKey(requestinfo.VisitorIP)) { tabInfo.RequestEntity = currentVisitors[requestinfo.VisitorIP] as RequestInfo; } //修改请求信息 chatInfo.Add(tabInfo); RefreshTabInfo(); IsIP = lstVisitors.SelectedItems[0].SubItems[2].Text; ws.TransferChat(requestinfo); //修改客服编号 ws.AcceptChatRequest(requestinfo.ChatId, Program.CurrentOperator.Id);//服务人员 } } else { DialogResult choice = MessageBox.Show("是否确认发出邀请", "YesNo?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (choice == DialogResult.Yes) { RequestInfo info = this.lstVisitors.SelectedItems[0].Tag as RequestInfo; ChatRequestInfo requestinfo = new ChatRequestInfo(); requestinfo.ChatId = Guid.NewGuid().ToString(); //chatid requestinfo.AccountId = info.AccoutId.ToString(); requestinfo.VisitorIP = lstVisitors.SelectedItems[0].SubItems[2].Text; //IP requestinfo.AcceptByOpereratorId = Program.CurrentOperator.Id; //服务人员 requestinfo.RequestDate = DateTime.Now; requestinfo.VisitorName = ""; requestinfo.VisitorEmail = ""; requestinfo.VisitorUserAgent = lstVisitors.SelectedItems[0].SubItems[4].Text;//浏览器 requestinfo.WasAccept = false; ws.TransferChat(requestinfo); IsIP = lstVisitors.SelectedItems[0].SubItems[2].Text; //信息显示 TabPage tab = new TabPage(requestinfo.VisitorIP); LiveChat lc = new LiveChat(); lc.Tag = tabChats; lc.ChatRequest = requestinfo; lc.Dock = DockStyle.Fill; tab.Controls.Add(lc); tabChats.TabPages.Add(tab); tab.Focus(); TabInfo tabInfo = new TabInfo(); tabInfo.ChatId = requestinfo.ChatId; tabInfo.Dock = DockStyle.Fill; if (currentVisitors.ContainsKey(requestinfo.VisitorIP)) { tabInfo.RequestEntity = currentVisitors[requestinfo.VisitorIP] as RequestInfo; } //修改请求信息 chatInfo.Add(tabInfo); RefreshTabInfo(); } } } else { MessageBox.Show("你还没有选择跟谁进行对话", "请选择", MessageBoxButtons.OK, MessageBoxIcon.Stop); } }
//����ChatID��ѯһ������ public override ChatRequestInfo GetChatRequestByChatId(string chatId) { SqlConnection sqlC = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("LiveChat_ChatRequestsGetByChatID", sqlC); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader data = null; ChatRequestInfo chat=null; try { cmd.Parameters.Add("@ChatID", SqlDbType.Int).Value = chatId; sqlC.Open(); data = cmd.ExecuteReader(); if (data.Read()) { chat = new ChatRequestInfo(data); } data.Close(); data.Dispose(); data = null; cmd.Dispose(); sqlC.Close(); } catch { throw; } finally { if (sqlC != null) { if (sqlC.State == ConnectionState.Open) sqlC.Close(); sqlC.Dispose(); sqlC = null; } } return chat; }
public override string RequestChat(ChatRequestInfo request) { SqlConnection sqlC = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand("LiveChat_ChatRequestsAdd", sqlC); cmd.CommandType = CommandType.StoredProcedure; string retVal = request.ChatId; try { cmd.Parameters.Add("@ChatID", SqlDbType.Char, 39).Value = request.ChatId; cmd.Parameters.Add("@AccountId", SqlDbType.Int).Value = request.AccountId; cmd.Parameters.Add("@VisitorIP", SqlDbType.VarChar, 50).Value = request.VisitorIP; cmd.Parameters.Add("@VisitorName", SqlDbType.VarChar, 100).Value = request.VisitorName; cmd.Parameters.Add("@VisitorEmail", SqlDbType.VarChar, 225).Value = request.VisitorEmail; cmd.Parameters.Add("@VisitorUserAgent", SqlDbType.VarChar, 125).Value = request.VisitorUserAgent; cmd.Parameters.Add("@OperatorID", SqlDbType.Int).Value = request.AcceptByOpereratorId; cmd.Parameters.Add("@RequestDate", SqlDbType.SmallDateTime).Value = request.RequestDate; sqlC.Open(); retVal = cmd.ExecuteScalar().ToString(); cmd.Dispose(); sqlC.Close(); } catch { throw; } finally { if (sqlC != null) { if (sqlC.State == ConnectionState.Open) sqlC.Close(); sqlC.Dispose(); sqlC = null; } } return retVal; }
public override void RemoveChatRequest(ChatRequestInfo req) { bool cacheExists; List<ChatRequestInfo> requests = GetCurrentRequest(out cacheExists); for (int i = 0; i < requests.Count; i++) { if (requests[i].ChatId == req.ChatId) { requests.RemoveAt(i); break; } } SaveRequests(cacheExists, requests); }