StartWorkPage.xaml.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace Cashier
  18. {
  19. /// <summary>
  20. /// Interaction logic for StartWorkPage.xaml
  21. /// </summary>
  22. public partial class StartWorkPage : Page
  23. {
  24. public StartWorkPage()
  25. {
  26. InitializeComponent();
  27. }
  28. public async void ConnectToStore(string IDStore, string Message)
  29. {
  30. try
  31. {
  32. if (IDStore.Length == 1) IDStore.Insert(0, "0");
  33. IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), Convert.ToInt32("102" + IDStore));
  34. Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  35. socket.Connect(iPEndPoint);
  36. byte[] data = Encoding.UTF8.GetBytes(Message);
  37. socket.Send(data);
  38. data = new byte[256];
  39. int byts = 0;
  40. StringBuilder builder = new StringBuilder();
  41. do
  42. {
  43. byts = socket.Receive(data, data.Length, 0);
  44. builder.Append(Encoding.UTF8.GetString(data, 0, byts));
  45. } while (socket.Available > 0);
  46. MessageBox.Show(builder.ToString());
  47. socket.Shutdown(SocketShutdown.Both);
  48. socket.Close();
  49. }
  50. catch (Exception)
  51. {
  52. Helper.ErrorMessage("Нет ответа от сервера");
  53. }
  54. }
  55. private void BtnConnect_Click(object sender, RoutedEventArgs e)
  56. {
  57. if (string.IsNullOrEmpty(TxtIDStore.Text) || TxtIDStore.Text.All(char.IsDigit) == false)
  58. {
  59. Helper.ErrorMessage("Не корректный ID");
  60. return;
  61. }
  62. if (string.IsNullOrEmpty(TxtNumberCashier.Text) || TxtNumberCashier.Text.All(char.IsDigit)== false)
  63. {
  64. Helper.ErrorMessage("Не корректный номер кассы");
  65. return;
  66. }
  67. if (string.IsNullOrEmpty(TxtCodeEmployee.Text) || TxtCodeEmployee.Text.All(char.IsDigit) == false)
  68. {
  69. Helper.ErrorMessage("Не корректный код сотрудника");
  70. return;
  71. }
  72. string Message = $"Code cashier={TxtNumberCashier.Text}; Code employee ={TxtCodeEmployee.Text}";
  73. ConnectToStore(TxtIDStore.Text, Message);
  74. }
  75. }
  76. }