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); } } }
private void SetShip() { 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); //Найдем задание string RZDN = SqlLiteQuery.GetRZDNForLabel(TN); //Необходимо перенести список на этап сканирования ////Спискок ЕУ запилим //listEU = new List<WebReference.Relmuch>(); //for (int i = 0; i < _tblEU.Rows.Count; i++) //{ // if (_tblEU.Rows[i]["Select"].ToString() == "1") // { // //Вот тут то и дичка // listEU.Add(_tblEU.Rows[i]["Label"].ToString()); // } //} if (BufferToBD.ModeNetTerminalB) {//Если мы в Онлайне try { DataTable result = BrServer.POST_EU_LIST_SHIP_TYPE(listEU.ToArray(), RZDN, null); dataGridEu.BackColor = Color.LightGray; OpenNETCF.Media.SystemSounds.Beep.Play(); ////Далее нужен алгоритм обработки ответа //foreach (DataRow dr in dataGridEu.Rows) //{ //} SetColorBackGround(StatusScan.Ok); } catch (System.Net.WebException ex) { dataGridEu.BackColor = Color.LemonChiffon; BufferToBD.ModeNetTerminalB = false; CLog.WriteException("EUSHip.cs", "SetShip", ex.ToString()); //Отправляем в буфер BufferOper_POST_EU_LIST_SHIP Oper = new BufferOper_POST_EU_LIST_SHIP(RZDN, listEU.ToArray()); BufferToBD.BufferAdd(new BufferOperation(TypeClassBuffer.POST_EU_LIST_SHIP, Oper)); OpenNETCF.Media.SystemSounds.Beep.Play(); Thread.Sleep(100); OpenNETCF.Media.SystemSounds.Beep.Play(); SetColorBackGround(StatusScan.Buffer); } catch (System.Net.Sockets.SocketException ex) {//На случай если во время выполнения сломается связть dataGridEu.BackColor = Color.LemonChiffon; BufferToBD.ModeNetTerminalB = false; CLog.WriteException("EUSHip.cs", "SetShip", ex.ToString()); //Отправляем в буфер BufferOper_POST_EU_LIST_SHIP Oper = new BufferOper_POST_EU_LIST_SHIP(RZDN, listEU.ToArray()); BufferToBD.BufferAdd(new BufferOperation(TypeClassBuffer.POST_EU_LIST_SHIP, Oper)); OpenNETCF.Media.SystemSounds.Beep.Play(); Thread.Sleep(100); OpenNETCF.Media.SystemSounds.Beep.Play(); SetColorBackGround(StatusScan.Buffer); } } else {//Если мы в Офлайне BufferOper_POST_EU_LIST_SHIP Oper = new BufferOper_POST_EU_LIST_SHIP(RZDN, listEU.ToArray()); BufferToBD.BufferAdd(new BufferOperation(TypeClassBuffer.POST_EU_LIST_SHIP, Oper)); dataGridEu.BackColor = Color.LemonChiffon; OpenNETCF.Media.SystemSounds.Beep.Play(); Thread.Sleep(100); OpenNETCF.Media.SystemSounds.Beep.Play(); SetColorBackGround(StatusScan.Buffer); } //Анализируем результат, и подсветку делаем строк }