using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Cashier { /// /// Interaction logic for StartWorkPage.xaml /// public partial class StartWorkPage : Page { public StartWorkPage() { InitializeComponent(); } public async void ConnectToStore(string IDStore, string Message) { try { if (IDStore.Length == 1) IDStore= IDStore.Insert(0, "0"); IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), Convert.ToInt32("102" + IDStore)); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(iPEndPoint); byte[] data = Encoding.UTF8.GetBytes(Message); socket.Send(data); data = new byte[256]; int byts = 0; StringBuilder builder = new StringBuilder(); do { byts = socket.Receive(data, data.Length, 0); builder.Append(Encoding.UTF8.GetString(data, 0, byts)); } while (socket.Available > 0); string response = builder.ToString(); if (response.Contains("Добро пожаловать")) { string Json = response.Split('=')[1]; Helper.ProductInStore = JsonConvert.DeserializeObject>(Json); Helper.InformationMessage(response.Split('=')[0]); ManagerFrame.MainFrame.Navigate(new MenuPage()); } else { Helper.ErrorMessage(response); } socket.Shutdown(SocketShutdown.Both); socket.Close(); } catch (Exception) { Helper.ErrorMessage("Нет ответа от сервера"); } } private void BtnConnect_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(TxtIDStore.Text) || TxtIDStore.Text.All(char.IsDigit) == false) { Helper.ErrorMessage("Не корректный ID"); return; } if (string.IsNullOrEmpty(TxtNumberCashier.Text) || TxtNumberCashier.Text.All(char.IsDigit)== false) { Helper.ErrorMessage("Не корректный номер кассы"); return; } if (string.IsNullOrEmpty(TxtCodeEmployee.Text) || TxtCodeEmployee.Text.All(char.IsDigit) == false) { Helper.ErrorMessage("Не корректный код сотрудника"); return; } Helper.IDStore = Convert.ToInt32(TxtIDStore.Text); Helper.IDCashier = Convert.ToInt32(TxtNumberCashier.Text); Helper.NumberEmployee = TxtCodeEmployee.Text; string Message = $"Authorization - Code cashier={TxtNumberCashier.Text}; Code employee ={TxtCodeEmployee.Text}"; ConnectToStore(TxtIDStore.Text, Message); } } }