Пример #1
0
        private void menuItem_sendFile_Click(object sender, EventArgs e)
        {
            if (lv_clients.SelectedItems.Count <= 0)
            {
                return;
            }

            ListViewItem selectedItem = lv_clients.SelectedItems[0];

            TcpComm.Server.SessionCommunications session = _server?.GetSession(Convert.ToInt32(selectedItem.SubItems[1].Text));
            if (session == null)
            {
                MessageBox.Show("Wybrany klient jest rozłączony.", "Klient rozłączony", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            string message = "Wybierz plik do wysłania do: " + selectedItem.SubItems[2].Text;

            openFileDialog.Title    = message;
            openFileDialog.FileName = "";
            openFileDialog.ShowDialog();
            string fileName = openFileDialog.FileName;

            if (fileName.Trim().Equals(""))
            {
                return;
            }

            if (!_server.SendFile(fileName, session.sessionID))
            {
                MessageBox.Show("Klient został rozłączony", "Klient rozłączony", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Пример #2
0
        private void menuItem_sendCommand_Click(object sender, EventArgs e)
        {
            if (lv_clients.SelectedItems.Count > 0)
            {
                ListViewItem selectedItem = lv_clients.SelectedItems[0];
                TcpComm.Server.SessionCommunications session = _server?.GetSession(Convert.ToInt32(selectedItem.SubItems[1].Text));

                if (session == null)
                {
                    MessageBox.Show("Klient jest rozłączony.", "Klient rozłączony", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                CommandForm cmdForm = new CommandForm(selectedItem.SubItems[2].Text);
                cmdForm.ShowDialog();
                string ret = cmdForm.Command;

                if (string.IsNullOrEmpty(ret))
                {
                    return;
                }

                string errMsg = string.Empty;
                _server.SendText(ret.ToString(), 1, session.sessionID, ref errMsg);
            }
        }
Пример #3
0
 private void menuItem_disconnect_Click(object sender, EventArgs e)
 {
     if (lv_clients.SelectedItems.Count > 0)
     {
         ListViewItem selectedItem = lv_clients.SelectedItems[0];
         TcpComm.Server.SessionCommunications session = _server?.GetSession(Convert.ToInt32(selectedItem.SubItems[1].Text));
         session?.Close();
     }
 }
Пример #4
0
        private void UpdateFileProgress(TcpComm.Server.SessionCommunications session)
        {
            bool moveOn = false;

            if (session.SendingFile)
            {
                UI(() =>
                {
                    int itemSessionId = -1;
                    foreach (ListViewItem fileTransferListItem in lv_fileTransfer.Items)
                    {
                        Int32.TryParse(fileTransferListItem.SubItems[0].Text, out itemSessionId);
                        if (itemSessionId == session.sessionID && fileTransferListItem.SubItems[2].Text.Equals("Wychodzące"))
                        {
                            fileTransferListItem.SubItems[3].Text = session.GetPercentOfFileSent().ToString() + "%";
                            break;
                        }
                        else
                        {
                            itemSessionId = -1;
                        }
                    }

                    if (itemSessionId == -1)
                    {
                        ListViewItem progressListItem = new ListViewItem();
                        progressListItem.Text         = session.sessionID.ToString();
                        progressListItem.SubItems.Add(System.IO.Path.GetFileName(session.OutgingFileName));
                        progressListItem.SubItems.Add("Wychodzące");
                        progressListItem.SubItems.Add(session.GetPercentOfFileSent().ToString());
                        lv_fileTransfer.Items.Add(progressListItem);
                    }

                    moveOn = true;
                });

                while (!moveOn)
                {
                    System.Threading.Thread.Sleep(100);
                }
            }
            else
            {
                UI(() =>
                {
                    foreach (ListViewItem fileTransferListItem in lv_fileTransfer.Items)
                    {
                        Int32.TryParse(fileTransferListItem.SubItems[0].Text, out int currentSessionId);
                        if (currentSessionId == session.sessionID && fileTransferListItem.SubItems[2].Text.Equals("Wychodzące"))
                        {
                            lv_fileTransfer.Items.Remove(fileTransferListItem);
                            break;
                        }
                    }
                });
            }

            if (session.ReceivingFile)
            {
                moveOn = false;
                UI(() =>
                {
                    int currentSessionId = -1;
                    foreach (ListViewItem transferListItem in lv_fileTransfer.Items)
                    {
                        Int32.TryParse(transferListItem.Text, out currentSessionId);
                        if (currentSessionId == session.sessionID && transferListItem.SubItems[2].Text.Equals("Przychodzące"))
                        {
                            transferListItem.SubItems[3].Text = session.GetPercentOfFileReceived().ToString() + "%";
                            break;
                        }
                        else
                        {
                            currentSessionId = -1;
                        }
                    }

                    ListViewItem transferStatusListItem = new ListViewItem();

                    if (currentSessionId == -1)
                    {
                        transferStatusListItem.Text = session.sessionID.ToString();
                        transferStatusListItem.SubItems.Add(System.IO.Path.GetFileName(session.IncomingFileName));
                        transferStatusListItem.SubItems.Add("Przychodzące");
                        transferStatusListItem.SubItems.Add(session.GetPercentOfFileReceived().ToString());
                        lv_fileTransfer.Items.Add(transferStatusListItem);
                    }

                    moveOn = true;
                });

                while (!moveOn)
                {
                    System.Threading.Thread.Sleep(1);
                }
            }
            else
            {
                UI(() =>
                {
                    foreach (ListViewItem tlvi in lv_fileTransfer.Items)
                    {
                        Int32.TryParse(tlvi.SubItems[0].Text, out int currentSessionId);
                        if (currentSessionId == session.sessionID && tlvi.SubItems[2].Text.Equals("Przychodzące"))
                        {
                            lv_fileTransfer.Items.Remove(tlvi);
                            break;
                        }
                    }
                });
            }
        }