/// <summary> /// Подготавливаем данные для отправки и отправляем /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SendButton_Click(object sender, RoutedEventArgs e) { if (client != null ) { if (client.Connected) { string path; try { path = FileNameTextBox.Text; //условия для запуска обработки и отправки данных if (FirstLastNameBox.Text != string.Empty && UniversityBox.Text != string.Empty && PhoneBox.Text != string.Empty && path != string.Empty) { //получаем и подготавливаем данные UserInfo user = new UserInfo(FirstLastNameBox.Text, UniversityBox.Text, PhoneBox.Text); if (File.Exists(path)) { PrepareData(user, path); byte[] info = Encoding.ASCII.GetBytes(packetSerialize.Length.ToString()); //отправляем информацию о размере(или об отключении) bool isConnected =Send(info); if (isConnected) { if (client.Connected) { isConnected=Send(packetSerialize); if (isConnected) { WriteStatus("All bytes has been sent."); WriteStatus("Wating to answer..."); Task receiveTask = Task.Factory.StartNew(Receive); } } else { WriteStatus("Connection was closed"); ConnectButton.Content = "Подключиться"; Shutdown(); } } } else { MessageBox.Show("Текущий путь до файла не корректен, либо файл отсуствует"); } } else { MessageBox.Show("Заполните данные пользователя"); } } catch (Exception) { MessageBox.Show("SOME ERROR"); } } else//случай отсутсвия подключения { MessageBox.Show("Проблема с соединением. Попробуйте переподключиться."); ConnectButton.Content = "Подключиться"; } } else { MessageBox.Show("Сначала необходимо подключиться"); } }
/// <summary> /// Подготавливает данные для отпавки. Результат - byte[] packetSerialize /// </summary> /// <param name="user">Объект с информацией о пользователе</param> /// <param name="pathToFile">Путь к файлу в формате :</param> private void PrepareData(UserInfo user, string pathToFile) { MyPacketWrapper myPacket = new MyPacketWrapper(); { try { myPacket.FileBuff = File.ReadAllBytes(pathToFile); myPacket.FileName = System.IO.Path.GetFileName(pathToFile); ; myPacket.UserDetails = user; SerializeMyPacket(myPacket); } catch (FileNotFoundException exc) { MessageBox.Show(exc.Message); } catch (Exception exc) { MessageBox.Show(exc.Message); } } }