예제 #1
0
        public static void SendEndOfDocs()
        {
            //a müvelet végének elküldése
            string msg = ReadingMethods.ReadMSG();

            SendingOperations.WriteMSG("/ok");

            DocsShowClient.InPDF = false;
        }
예제 #2
0
        //az saját ip cím elküldése
        static void SendIP()
        {
            if (DocsShowClient.ClientIP != "")
            {
                SendingOperations.WriteMSG(DocsShowClient.ClientIP);
            }
            else
            {
                DocsShowClient.ClientIP = FileOperations.GetLocalIPAddress();

                SendingOperations.WriteMSG(DocsShowClient.ClientIP);
            }
        }
예제 #3
0
 public static void CheckIsValidPDFName(string docsName)
 {
     if (docsName == "")
     {
         SendInvalidPDFName($"A szerver nem létező doksi nevet küldőtt: \"{docsName}\"!");
     }
     else if (docsName.Contains("#") == true)
     {
         SendInvalidPDFName($"A szerver még régebbi verziót használ, frissítsd le a szervert!");
     }
     else
     {
         SendingOperations.WriteMSG("/okDocs");
     }
 }
예제 #4
0
        static void SetMaxCikkCount()
        {
            string msg = ReadingMethods.ReadMSG();

            bool res = int.TryParse(msg, out int maxCikk);

            if (res)
            {
                Datas.MaxCikkCount = maxCikk;
            }
            else
            {
                Datas.MaxCikkCount = 2;
            }

            SendingOperations.WriteMSG("/ok");
        }
예제 #5
0
        //egy üzenet kiolvasása és utána válaszolja azt ami az üzenetben van
        public static string ReadMSG()
        {
            string readedMSG = "/non";

            byte[] buffer = new byte[DocsShowClient.ClientTCP.ReceiveBufferSize];

            DocsShowClient.ClientStream.Read(buffer, 0, buffer.Length);

            readedMSG = Encoding.UTF8.GetString(buffer).TrimEnd('\0');

            if (readedMSG == "")
            {
                throw new IOException("A kapcsolat megszakadt a szerverrel ismeretlen hiba által");
            }

            if (readedMSG.Contains("/check"))
            {
                readedMSG = readedMSG.Replace("/check", "");

                SendingOperations.WriteMSG("/ok");
            }

            if (readedMSG.StartsWith("/"))
            {
                string[] datas = readedMSG.Split(' ');

                try
                {
                    CommandManager.Manager(datas[0], GetRealParams.GetRealParamsFromRawParams(datas));
                }
                catch (ApplicationException ex)
                {
                    DocsShowClient.Disconnect();

                    EndMethodsLibrary.EndMethods.End(ex.Message);
                }


                return(readedMSG);
            }
            else
            {
                return(readedMSG);
            }
        }
예제 #6
0
        public static void ManageDocs(string docsName, int i, int monitorIndex, string[] splitter)
        {
            //ha nyitva van éppen akkor isopened true ha nem akkor false
            bool isOpened = GetDatasAndWriteToHDD(docsName);

            if (isOpened)
            {
                //ha nem megfelelő standard van a helyén akkor lecserélés
                if (DocsShowClient.StandardsForGoodPosition[monitorIndex, i] != docsName)
                {
                    DocsShowClient.Standards.Add(docsName);

                    //a jó pozició beállítása
                    DocsShowClient.StandardsForGoodPosition[monitorIndex, i] = docsName;
                    //ami épp kint van annak a bezárása
                    ClosingOperations.CloseOneStandard(monitorIndex, i);
                    //és a standard megnyitása
                    Positioning.SplitForOneSide(DocsShowClient.Standards[i], i, monitorIndex, splitter[0], splitter[2]);
                }
                else
                {
                    //ha jó akkor isopened hozzáadása
                    DocsShowClient.Standards.Add("/isOpened");
                }
                //a jó pozició beállítása
                DocsShowClient.StandardsForGoodPosition[monitorIndex, i] = docsName;
            }
            else
            {
                //standardokhoz adás
                DocsShowClient.Standards.Add(docsName);
                //a jó pozició beállítása
                DocsShowClient.StandardsForGoodPosition[monitorIndex, i] = docsName;
                //kiírni hogy melyik fájlt kapta meg
                Console.WriteLine($"{DateTime.Now.ToString()}:{(i+1)}.fájl: { DocsShowClient.Standards[i] }");
                //ami éppen kint van azt bezárni
                ClosingOperations.CloseOneStandard(monitorIndex, i);
                //megnyitni a standardot
                Positioning.SplitForOneSide(DocsShowClient.Standards[i], i, monitorIndex, splitter[0], splitter[2]);
            }

            SendingOperations.WriteMSG("/okDoc");
        }
예제 #7
0
        //a csatlakozás elvégézése
        public static void CheckConnection()
        {
            string msg = ReadingMethods.ReadMSG();

            if (msg == "/okdatas")
            {
                //sikeres kapcsolodás
                Console.WriteLine($"{DateTime.Now.ToString()}:Sikeres kapcsolodás a {Datas.CommandServerIP}:{Datas.CommandPort} doksi kiszolgáló szerverhez");
                SendingOperations.WriteMSG("/connected");
            }
            else if (msg == "/inUse")
            {
                //a szerverre már felcsatlakoztak ezzel az IPvel
                throw new SocketException(10048);
            }
            else
            {
                //a válasz nem volt értelmezhető
                DocsShowClient.Disconnect();
                throw new ApplicationException("A szerver visszautasította az adatok kezelését");
            }
        }
예제 #8
0
        public static int GetMonitorIndex(string[] splitter)
        {
            //a monitorindex beállítása, ha érvénytelen az egész újrakezdése
            int monitorIndex = 0;

            try
            {
                monitorIndex = int.Parse(splitter[1]);
            }
            catch (Exception)
            {
                SendingOperations.WriteMSG("/InvalidDatas");

                throw new ApplicationException($"A szerver érvénytelen adatot küldőtt a monitorszámra: \"{splitter[1]}\"!");
            }

            Console.WriteLine($"{DateTime.Now.ToString()}:Monitorindex: { monitorIndex + 1 } ");

            //a fejléc adatokat sikeresen megkaptam (a asztalszám,monitorszám,cikkszám)
            SendingOperations.WriteMSG("/okDatas");

            return(monitorIndex);
        }
예제 #9
0
        public static string[] GetDatasSplitter()
        {
            //az alap infók megkapása
            string msg = ReadingMethods.ReadMSG();

            if (msg == "" || msg == "/non")
            {
                return(null);
            }

            string[] splitter = msg.Split(';');

            if (splitter.Length != 3 && splitter[0] != "/non")
            {
                SendingOperations.WriteMSG("/InvalidDatas");

                throw new ApplicationException($"A szerver nem létező adatokat küldőtt! Az asztalszáma;monitorszáma;cikkszám helyett: \"{msg}\"!");
            }

            DocsShowClient.InPDF = true;

            return(splitter);
        }
예제 #10
0
        static void SendInvalidPDFName(string msg)
        {
            SendingOperations.WriteMSG("/InvalidDocsName");

            throw new ApplicationException(msg);
        }