Exemple #1
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);
                }
            }
        }
Exemple #2
0
        private void SetMXSet()
        {
            DateTime NowTime = DateTime.Now;

            WebReference.WebSDataBrCode BrServer = new WebReference.WebSDataBrCode();
            BrServer.SoapVersion   = System.Web.Services.Protocols.SoapProtocolVersion.Soap12;
            BrServer.Url           = set.AdressAppServer;
            BrServer.BrHeaderValue = CBrHeader.GetHeader();
            BrServer.Credentials   = new NetworkCredential(CBrHeader.Login, CBrHeader.Password);
            if (BufferToBD.ModeNetTerminalB)
            {//Если мы в Онлайне
                try
                {
                    //Перед запросом сбросим все
                    for (int ii = 0; ii < _tblEU.Rows.Count; ii++)
                    {
                        _tblEU.Rows[ii]["Commit"] = "-1";
                    }

                    DataTable result = BrServer.POST_EU_LIST_Warehouse(listEU.ToArray(), labelPlace, null);

                    // dataGridEu.BackColor = Color.MediumAquamarine;
                    OpenNETCF.Media.SystemSounds.Beep.Play();

                    ////Далее нужен алгоритм обработки ответа
                    //Парсим ответ, и выставляем биты..
                    for (int i = 0; i < result.Rows.Count; i++)
                    {
                        string Label = result.Rows[i]["Label"].ToString();
                        string RCode = result.Rows[i]["resultCode"].ToString();
                        for (int ii = 0; ii < _tblEU.Rows.Count; ii++)
                        {
                            string LabelScan = _tblEU.Rows[ii]["Label"].ToString();
                            string RCodeScan = _tblEU.Rows[ii]["Commit"].ToString();
                            if (RCodeScan == "-1")
                            {                           //Не смотрим уже измененные
                                if (LabelScan == Label) //Поиск по лейблу
                                {
                                    _tblEU.Rows[ii]["Commit"] = RCode;
                                }
                            }
                        }

                        if (RCode == "0")
                        {
                            string RCodeEx = result.Rows[i]["result"].ToString();
                            //Запишем все в логи...
                            CLog.WriteException("WarehousePost.cs", "SetMXSet", "Label: " + Label + " resultCode: " + RCode + " result: " + RCodeEx);
                        }
                    }

                    dataGridEu.BeginInvoke(new Action(() =>
                    {
                        dataGridEu.DataSource = _tblEU;
                    }));
                }

                catch (System.Net.WebException ex)
                {
                    dataGridEu.BackColor = Color.LemonChiffon;

                    BufferToBD.ModeNetTerminalB = false;
                    CLog.WriteException("WarehousePost.cs", "buttonNext_Click_1", ex.ToString());
                    //Отправляем в буфер
                    BufferOper_POST_EU_LIST_Warehouse Oper = new BufferOper_POST_EU_LIST_Warehouse(labelPlace, listEU.ToArray());
                    BufferToBD.BufferAdd(new BufferOperation(TypeClassBuffer.POST_EU_LIST_Warehouse, Oper));
                    OpenNETCF.Media.SystemSounds.Beep.Play();
                    Thread.Sleep(100);
                    OpenNETCF.Media.SystemSounds.Beep.Play();

                    //Меняем статус на желтый
                    for (int ii = 0; ii < _tblEU.Rows.Count; ii++)
                    {
                        _tblEU.Rows[ii]["Commit"] = "3";
                    }

                    dataGridEu.BeginInvoke(new Action(() =>
                    {
                        dataGridEu.DataSource = _tblEU;
                    }));
                }

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

                    BufferToBD.ModeNetTerminalB = false;
                    CLog.WriteException("WarehousePost.cs", "buttonNext_Click_1", ex.ToString());
                    //Отправляем в буфер
                    BufferOper_POST_EU_LIST_Warehouse Oper = new BufferOper_POST_EU_LIST_Warehouse(labelPlace, listEU.ToArray());
                    BufferToBD.BufferAdd(new BufferOperation(TypeClassBuffer.POST_EU_LIST_Warehouse, Oper));
                    OpenNETCF.Media.SystemSounds.Beep.Play();
                    Thread.Sleep(100);
                    OpenNETCF.Media.SystemSounds.Beep.Play();

                    //Меняем статус на желтый
                    for (int ii = 0; ii < _tblEU.Rows.Count; ii++)
                    {
                        _tblEU.Rows[ii]["Commit"] = "3";
                    }

                    dataGridEu.BeginInvoke(new Action(() =>
                    {
                        dataGridEu.DataSource = _tblEU;
                    }));
                }
            }
            else
            {//Если мы в Офлайне
                BufferOper_POST_EU_LIST_Warehouse Oper = new BufferOper_POST_EU_LIST_Warehouse(labelPlace, listEU.ToArray());
                BufferToBD.BufferAdd(new BufferOperation(TypeClassBuffer.POST_EU_LIST_Warehouse, Oper));

                dataGridEu.BackColor = Color.LemonChiffon;
                OpenNETCF.Media.SystemSounds.Beep.Play();
                Thread.Sleep(100);
                OpenNETCF.Media.SystemSounds.Beep.Play();

                //Меняем статус на желтый
                for (int ii = 0; ii < _tblEU.Rows.Count; ii++)
                {
                    _tblEU.Rows[ii]["Commit"] = "3";
                }

                dataGridEu.BeginInvoke(new Action(() =>
                {
                    dataGridEu.DataSource = _tblEU;
                }));
            }
            //Анализируем результат, и подсветку делаем строк
        }