Example #1
0
 static public void InitReadBuffer()
 {
     CLog.WriteBuffer("Включаем буффер");
     ReadThBool = true;
     ReadTh     = new Thread(ReadBuffer);
     ReadTh.Start();
 }
Example #2
0
        static private void ReadBuffer()
        {
            Settings set;

            set = new Settings("DataBrCode.xml");

            while (ReadThBool)
            {//А тут занимаеся чтением буффера
                try
                {
                    if (BufferOracle != null)
                    {
                        if (countBuffer > 0)
                        {
                            if (_ModeNetTerminal)
                            {//Если мы в онлайн то работаем
                                try
                                {
                                    foreach (var elem in BufferOracle)
                                    {
                                        switch (elem.TypeOperation)
                                        {
                                        case TypeClassBuffer.POST_EU_LIST_Warehouse:
                                        {        ///Операция размещения
                                            CLog.WriteBuffer("Операция POST_EU_LIST_Warehouse");
                                            BufferOper_POST_EU_LIST_Warehouse e = (BufferOper_POST_EU_LIST_Warehouse)elem.BufOperatoon;
                                            e.StartOperation(set.AdressAppServer);
                                            //Удаление и вычитание
                                            BufferOracle.Remove(elem);
                                            countBuffer--;

                                            break;
                                        }

                                        case TypeClassBuffer.POST_EU_LIST_TASKMOVE:
                                        {        ///Операция размещения
                                            CLog.WriteBuffer("Операция POST_EU_LIST_TASKMOVE");
                                            BufferOper_POST_EU_LIST_TASKMOVE e = (BufferOper_POST_EU_LIST_TASKMOVE)elem.BufOperatoon;
                                            e.StartOperation(set.AdressAppServer);
                                            //Удаление и вычитание
                                            BufferOracle.Remove(elem);
                                            countBuffer--;

                                            break;
                                        }

                                        case TypeClassBuffer.POST_EU_IN_AGR:
                                        {        ///Операция размещения
                                            CLog.WriteBuffer("Операция POST_EU_IN_AGR");
                                            BufferOper_POST_EU_IN_AGR e = (BufferOper_POST_EU_IN_AGR)elem.BufOperatoon;
                                            e.StartOperation(set.AdressAppServer);
                                            //Удаление и вычитание
                                            BufferOracle.Remove(elem);
                                            countBuffer--;

                                            break;
                                        }

                                        case TypeClassBuffer.POST_EU_LIST_SHIP:
                                        {        ///Операция размещения
                                            CLog.WriteBuffer("Операция POST_EU_LIST_SHIP");
                                            BufferOper_POST_EU_LIST_SHIP e = (BufferOper_POST_EU_LIST_SHIP)elem.BufOperatoon;
                                            e.StartOperation(set.AdressAppServer);
                                            //Удаление и вычитание
                                            BufferOracle.Remove(elem);
                                            countBuffer--;

                                            break;
                                        }

                                        case TypeClassBuffer.POST_EU_LIST_RZDN_AGR:
                                        {        ///Операция размещения
                                            CLog.WriteBuffer("Операция POST_EU_LIST_RZDN_AGR");
                                            BufferOper_POST_EU_LIST_RZDN_AGR e = (BufferOper_POST_EU_LIST_RZDN_AGR)elem.BufOperatoon;
                                            e.StartOperation(set.AdressAppServer);
                                            //Удаление и вычитание
                                            BufferOracle.Remove(elem);
                                            countBuffer--;

                                            break;
                                        }


                                        case TypeClassBuffer.POST_EU_LIST_INVERT_MX:
                                        {        ///Операция размещения
                                            CLog.WriteBuffer("Операция POST_EU_LIST_INVERT_MX");
                                            BufferOper_POST_EU_LIST_INVERT_MX e = (BufferOper_POST_EU_LIST_INVERT_MX)elem.BufOperatoon;
                                            e.StartOperation(set.AdressAppServer);
                                            //Удаление и вычитание
                                            BufferOracle.Remove(elem);
                                            countBuffer--;

                                            break;
                                        }
                                        }
                                        ///Для теста
                                        Thread.Sleep(100);
                                    }
                                }

                                catch (System.Net.WebException)
                                {//На случай если во время выполнения сломается связть
                                    ModeNetTerminalB = false;
                                }


                                catch (System.Net.Sockets.SocketException)
                                {//На случай если во время выполнения сломается связть
                                    ModeNetTerminalB = false;
                                }
                            }

                            else
                            {//тут тестируем онлайн мы или нет и устанваливаем статус
                                _ModeNetTerminal = testConnect(set.AdressAppServer);
                                if (!_ModeNetTerminal)
                                {
                                    Thread.Sleep(1000);
                                }
                            }
                        }
                    }

                    Thread.Sleep(100);
                }
                catch (Exception ex)
                {
                    CLog.WriteException("BufferToBD", "ReadBuffer", ex.Message);
                }
            }
        }