예제 #1
0
        //egy kiloko model alapján kiküldi az adatokat, két cikket
        void SendDoubleCikkToMachine(IKilokoModel kiloko)
        {
            try
            {
                if (kiloko.Cikkek.Length > 2)
                {
                    string[] cikkek = new string[2] {
                        kiloko.Cikkek[0], kiloko.Cikkek[1]
                    };

                    OperationModel.DoubleLineOperations.SendDoubleStandardToOneAsztal(kiloko.Kiloko, cikkek);
                }
                else
                {
                    OperationModel.DoubleLineOperations.SendDoubleStandardToOneAsztal(kiloko.Kiloko, kiloko.Cikkek.ToArray());
                }
            }
            catch (ApplicationException ex)
            {
                Console.WriteLine($"{DateTime.Now.ToString()}:{ex.Message}");
                Logger.MakeLog(ex.Message);
            }
            catch (Exception ex)
            {
                if (kiloko.Client != null)
                {
                    Console.WriteLine($"{DateTime.Now.ToString()}: Ismeretlen hiba lépett fel a cikkek elküldése közben a {kiloko.Client?.ClientIP.ToString()} kliensre: {ex.Message}");
                    Logger.MakeLog($"Ismeretlen hiba lépett fel a cikkek elküldése közben a {kiloko.Client?.ClientIP.ToString()} kliensre: {ex.Message}");
                }
            }
        }
예제 #2
0
        void SendOutDatasToClients()
        {
            List <Task> sendingTasks = new List <Task>();

            //végig megy a listán és mindegyiknél eldönti hogy kell küldeni a cikkeket
            for (int i = 0; i < CommonDatas.Kilokok.Length; i++)
            {
                //az elöző model lekérése
                IKilokoModel prevModel = PrevModels[i];
                //az új model lekérése
                IKilokoModel newModel = CommonDatas.Kilokok[i];

                if (CommonDatas.NetworkSpareLevel > 10)
                {
                    if (!_first)
                    {
                        if (prevModel.Cikkek == newModel.Cikkek)
                        {
                            continue;
                        }
                    }
                }

                ManageCikks(newModel);
            }

            Task.WaitAll(sendingTasks.ToArray());
        }
예제 #3
0
        //új cikk hozzáadása a kilőkőmodelhez
        public static void AddNewCikkToModel(string cikk, string toGUI, string kiloko)
        {
            IKilokoModel kilokoModel = GetKilokoModel(kiloko);

            if (kilokoModel != null)
            {
                if (!kilokoModel.Cikkek.Contains(cikk))
                {
                    kilokoModel.AddNewCikk(cikk, toGUI);
                }
            }
        }
예제 #4
0
        //egy kiloko model alapján kiküldi az adatokat, egy cikket
        void SendCikkToMachine(IKilokoModel kiloko)
        {
            try {
                string cikk = (from cikkRaw in kiloko.Cikkek where cikkRaw != null select cikkRaw).First();

                LuxScanDatas.SendDatasToClient(cikk, kiloko.Kiloko);
            }
            catch (ApplicationException ex) {
                Console.WriteLine($"{DateTime.Now.ToString()}:{ex.Message}");
                Logger.MakeLog(ex.Message);
            }
            catch (Exception ex) {
                Logger.MakeLog(ex.Message);
            }
        }
예제 #5
0
        void SetUpNewDatas(string kilokoSzam, List <string> kilokok, string cikk, string toGUI, string rawKiloko)
        {
            IKilokoModel kilokoModel = DataOperations.GetKilokoModel(kilokoSzam);

            if (kilokoModel != null)
            {
                if (rawKiloko.Contains(MarkLeftSide))
                {
                    kilokoModel.AddNewCikk(cikk, toGUI, 0);
                }
                else if (rawKiloko.Contains(MarkRightSide))
                {
                    kilokoModel.AddNewCikk(cikk, toGUI, 1);
                }
                else
                {
                    SetNewCikksToModels(kilokok, kilokoSzam, cikk, toGUI);
                }
            }
        }
예제 #6
0
        public void ReplaceInfo(string asztal, string stand1, string stand2, string cikk)
        {
            //ha külső szálból lépne be a frissitésbe akkor nem fogja lefagyasztani a GUI szálat
            if (MyTable.dgw_Asztalok.InvokeRequired)
            {
                MyTable.dgw_Asztalok.BeginInvoke((Action)(() =>
                {
                    ReplaceInfo(asztal, stand1, stand2, cikk);
                }));

                return;
            }

            //a megfelelő kilőkőmodel megszerzése
            IKilokoModel kiloko = DataOperations.GetKilokoModel(asztal);

            if (kiloko == null)
            {
                return;
            }

            //ha az egyik standard üres akkor állítsa be a "Nincs PDF" szöveget
            if (stand1 == "" || stand1.Contains("Nincs semmi") || stand1.Contains("/"))
            {
                stand1 = "Nincs PDF";
            }
            if (stand2 == "" || stand2.Contains("Nincs semmi") || stand2.Contains("/"))
            {
                stand2 = "Nincs PDF";
            }

            stand1 = stand1.Split('#')[0];
            stand2 = stand2.Split('#')[0];

            //inicialízálja az adatokat
            LoadDataGridView(asztal, stand1, stand2, kiloko.GetGUICikk(cikk));

            //frissítse a datagridviewt
            ManageDGV();
        }
예제 #7
0
        public static void SendFirstDocs(List <string> asztalSzamok)
        {
            //a luxscanfile frissitése
            LuxScanFileGetter.SetLuxscanFilePath();

            //ha nincs beállítva akkor ne küldje el
            if (!CommonDatas.HasLuxscanFile)
            {
                return;
            }

            //a kilőkő modelen a cikkek frissitése
            OperationModel.LineMaker.SetLineModel(asztalSzamok);

            //végig menni az asztalokon és aztán elküldeni rájuk a megfelelő cikket
            foreach (var kilokoSzama in asztalSzamok)
            {
                IKilokoModel model = DataOperations.GetKilokoModel(kilokoSzama);

                OperationModel.SendingOperations.ManageCikks(model);
                CommonDatas.GUI.Setter.SetKilokoOnline(kilokoSzama);
            }
        }
예제 #8
0
        //a kilőkő model alapján megállapítja, hogy hány cikket kell kiküldeni
        public void ManageCikks(IKilokoModel kiloko)
        {
            var cikkek = (from cikk in kiloko.Cikkek where cikk != null select cikk).ToArray();

            switch (cikkek?.Length)
            {
            case 0:
                CommonDatas.GUI.DGVManager.ReplaceInfo(kiloko.Kiloko, "A kilökő üres", "A kilökő üres", "A kilökő nem aktív");
                break;

            case 1:
                SendCikkToMachine(kiloko);
                break;

            case 2:
                SendDoubleCikkToMachine(kiloko);
                break;

            default:
                SendDoubleCikkToMachine(kiloko);
                break;
            }
        }
예제 #9
0
        public static void SetKilokosOffline(string ip)
        {
            //az asztalok kiszedése
            List <string> Asztalok = GetMachineInfosOperations.GetAsztalokFromIP(ip);

            if (Asztalok != null)
            {
                //az asztalokon végig menni és az összeset nullázni
                foreach (var asztal in Asztalok)
                {
                    try
                    {
                        CommonDatas.GUI.Setter.SetKilokoOffline(asztal);

                        IKilokoModel kiloko = DataOperations.GetKilokoModel(asztal);
                        kiloko.DeleteClient();
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }