예제 #1
0
        //接受请求
        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);//服务人员
            }
        }
예제 #2
0
 //点击传送文件
 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);
     }
 }
예제 #3
0
    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;
            }
        }
    }
예제 #4
0
    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);
    }
예제 #5
0
    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);
    }
예제 #6
0
    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);
    }
예제 #7
0
    //跟据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);
    }
예제 #8
0
    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;
            }
        }
    }
예제 #9
0
	public abstract string RequestChat(ChatRequestInfo request);
예제 #10
0
 public abstract void RemoveChatRequest(ChatRequestInfo req);
예제 #11
0
 public abstract void RemoveChatRequest(ChatRequestInfo req);
예제 #12
0
 public abstract string RequestChat(ChatRequestInfo request);
예제 #13
0
 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);
     }
 }
예제 #14
0
 //��������ļ�
 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);
     }
 }
예제 #15
0
    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;
    }
예제 #16
0
 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);
     }
 }
예제 #17
0
    //����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;
    }
예제 #18
0
    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;
    }
예제 #19
0
    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);
    }