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 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; })); } //Анализируем результат, и подсветку делаем строк }