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); } }
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); } }
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(); } }
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; } } }); } }