static void DoDisconnect(string msg, string ip) { Console.WriteLine($"{DateTime.Now.ToString()}:{msg}"); IOs.Logger.MakeLog(msg); Client newClient = ClientMethods.GetClient(ip); if (newClient != null) { newClient.Disconnect(); } }
//létezik-e a client public static bool ValidClient(string ip) { Client client = ClientMethods.GetClient(ip); if (client == null) { return(false); } else { return(true); } }
//két cikk egy asztalra küldés //asztalszám;ip;monitorszám adatstruktura public void SendDoubleStandardToOneAsztal(string asztalszam, string[] cikkek) { //a gép infók kiolvasása string[] gepRaw = DataOperations.GetSearchedData(asztalszam, CommonDatas.GepInfoPath); //ip kiszedése az adatstrukturából string ip = gepRaw[1]; //a pdfraws kiolvasása és összeállítása egy listává, két cikk alapján List <string[]> pdfRaws = DataOperations.MakePDFRaws(cikkek); //a kliens streamjének megszerzése az IP cím alapján Client client = ClientMethods.GetClient(ip); //a pdfraws adatok ellenőrzése ha megfelelő, akkor visszaadja azokat, ha nem akkor pedig mást add vissza for (int i = 0; i < cikkek.Length; i++) { pdfRaws[i] = InfoChecker.ValidInfos(gepRaw[1], asztalszam, cikkek[i], pdfRaws[i]); } //a két pdfRawból egy összetett pdfRaw állít elő, veszi a két pdfRaw első két standardját és azt állítja össze string[] compliedPDFRaw = DataOperations.MakeCompliedPDFRaw(pdfRaws); if (compliedPDFRaw == null) { throw new ApplicationException($"A PDFek kiolvasása a {asztalszam} sikertelen volt, mert nem tudta kiolvasni a {CommonDatas.PathtoCikkek} fájlból az adatokat"); } //az elküldés elindítása egy másik szálon, hogy gyorsabban menjen a folyamat Task.Run(() => { ServerSendingProtocol.SendDatas(client, gepRaw, compliedPDFRaw); }); //az adatok GUIra való állítása if (pdfRaws[0][0] == null) { CommonDatas.GUI.DGVManager.ReplaceInfo(asztalszam, pdfRaws[0][1], pdfRaws[1][1], pdfRaws[1][0]); } else { CommonDatas.GUI.DGVManager.ReplaceInfo(asztalszam, pdfRaws[0][1], pdfRaws[1][1], pdfRaws[0][0] + CommonDatas.MarkBetweenTwoCikk + pdfRaws[1][0]); } }
//az adatok elküldése a klienseknek public static void SendDatasToClient(string cikk, string asztal) { string[] gepRaw; string[] pdfRaw; try { //paraméterek vizsgálása ParameterChecking.CheckParamValidate(cikk); ParameterChecking.CheckParamValidate(asztal); //a gepinfók beolvasása gepRaw = DataOperations.GetSearchedData(asztal, CommonDatas.GepInfoPath); //a cikk infók beolvasása pdfRaw = DataOperations.GetSearchedData(cikk, CommonDatas.PathtoCikkek); //a beolvasott adatok vizsgálata ParameterChecking.CheckgepInfosValidate(gepRaw, asztal); ParameterChecking.CheckpdfInfosValidate(pdfRaw, cikk, asztal); } catch (ApplicationException ex) { Console.WriteLine($"{DateTime.Now.ToString()}: {ex.Message}"); Logger.MakeLog(ex.Message); return; } catch (Exception ex) { Console.WriteLine($"{DateTime.Now.ToString()}: Ismeretlen hiba lépett fel: {ex.Message}"); Logger.MakeLog($"Ismeretlen hiba lépett fel: {ex.Message}"); return; } Client client = ClientMethods.GetClient(gepRaw[1]); //a kliens beállítása if (client != null) { //az adatok elküldése ServerSendingProtocol.SendDatas(client, gepRaw, pdfRaw); } //az adatok beállítása a GUIban CommonDatas.GUI.DGVManager.ReplaceInfo(asztal, pdfRaw[1], pdfRaw[2], cikk); }
public void Disconnect() { //már nem küld semmi adatot SendingDatas = false; //a kliens kiszedése a kliens listából ClientMethods.RemoveClient(this); try { //a kapcsolat bezárása ClientTCP.Close(); //a stream bezárása ClientStream.Close(); } catch (Exception) { } Checking = false; DisconnectOperations.SetKilokosOffline(ClientIP.ToString()); }