void checkDataSource() { //ToolMobile.setRuntimeMsg("checkDataSource starting"); var s = SettingsFromXmlDoc.createDummy(); string old_ = s.format(); fillDataForRequest(s); string new_ = s.format(); if (old_ != new_) { AgentData ad = new AgentData(environment); string res_ = ad.sendText(new_); if (!string.IsNullOrEmpty(res_)) { var newS_ = new SettingsFromXmlDoc(res_); // checkDataFromRespose(newS_); } } if (getUnSyncedDocs().Rows.Count > 0) { log.set(MessageCollection.T_MSG_RECORD_NOT_SYNCED, new object[] { getRecDesc(getUnSyncedDocs().Rows[0]) }); throw new MyExceptionError(MessageCollection.T_MSG_RECORD_NOT_SYNCED); } ToolMobile.setRuntimeMsg("checkDataSource finished"); }
void importRecords(XmlDocument doc, AdapterUserRecords[] arrAdapters, string[] arrDesc) { for (int i = 0; i < arrAdapters.Length; ++i) { try { // ToolMobile.setRuntimeMsg("importRecords : starting: " + arrDesc[i]); log.set(MessageCollection.T_MSG_DATA_IMPORT, new object[] { arrDesc[i] }); // // AdapterUserRecords adp = arrAdapters[i]; adp.import(doc); // ToolMobile.setRuntimeMsg("importRecords : finished: " + arrDesc[i]); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); throw new Exception(arrDesc[i], exc); } } }
public void set(string text, object[] data) { try { set(_env.translate(text) + ":" + ToolString.joinList(ToolString.toString(data))); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }
public virtual object set(object pData) { if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterDataSet.set:beg"); } object result = null; DataSet dataSet = null; try { dataSet = (DataSet)pData; changeDataStructure(dataSet); setNewIdAll(dataSet); prepareBeforeUpdate(dataSet); for (int i = 0; i < tableNames.Count; ++i) { String curTab = tableNames[i]; DataTable table = dataSet.Tables[curTab]; correctRecordsStatus(table); checkForTouch(table); if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("dictionary[curTab].set(table)"); } dictionary[curTab].set(table); } result = getReturnResult(); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); environment.rollbackBatch(); result = exc; } if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterDataSet.set:end"); } return(result); }
public void show() { try { ToolMobile.startForm(typeof(FormUserHandlerLog)); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }
public void error(string text) { try { if (Error != null) { Error.Invoke(this, new EventArgsString(_env.translate(text))); } } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }
public void hide() { try { if (Hide != null) { Hide.Invoke(this, EventArgs.Empty); } } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }
public void set(string text) { try { if (NewMessage != null) { NewMessage.Invoke(this, new EventArgsString(_env.translate(text))); } } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }
void setMsg(string msg) { this.RunOnUiThread(() => { try { cData.Text = msg; cData.ScrollTo(0, int.MaxValue); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }); }
public virtual object update() { if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterUser.update:1"); } prepareBeforeUpdate(localDataSet); DataSet ds = localDataSet.Copy(); deleteFullColumns(ds); if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterUser.update:3"); } return(dataSetAdapter.set(ds)); }
static byte[] connectHttp(byte[] pPostData, string pController) { string server = CurrentVersion.ENV.getServerIp(); int port = CurrentVersion.ENV.getServerPort(); string agentNr = CurrentVersion.ENV.getAgentNr(); string agentId = CurrentVersion.ENV.getAgentId(); ToolMobile.setRuntimeMsg("Connection:http: agent [" + agentNr + "] to server [" + server + "] via port [" + port + "]"); pPostData = pPostData ?? new byte[] { }; using (var client = new System.Net.WebClient()) { client.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(agentNr + ":" + agentId))); //System.Net.WebException byte[] pageData = client.UploadData("http://" + server + ":" + port + "/" + pController, "POST", pPostData); return(pageData); } }
private void initCommands(DbDataAdapter pAdp, DataTable pData, ITableDescriptor pTabDesc) { if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterTableExt:initCommands:beg"); } DataColumn colV_ = pData.Columns[TableDUMMY.RECVERS]; foreach (DataRow row in pData.Rows) { switch (row.RowState) { case DataRowState.Added: if (pAdp.InsertCommand == null) { initCommandInsert(pAdp, pTabDesc); } break; case DataRowState.Deleted: if (pAdp.DeleteCommand == null) { initCommandDelete(pAdp, pTabDesc); } break; case DataRowState.Modified: if (colV_ != null) { short rv_ = Convert.ToInt16(ToolCell.isNull(row[colV_, DataRowVersion.Original], 0)); ++rv_; ToolCell.set(row, colV_, rv_); } if (pAdp.UpdateCommand == null) { initCommandUpdate(pAdp, pTabDesc); } break; } } }
void instance_Hide(object sender, EventArgs e) { canClose = true; this.RunOnUiThread(() => { try { cBtnCancel.Enabled = true; } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }); if (!error) { userRequireCancel(); } }
//protected virtual int getPort(bool pForSending) //{ // int port_ = CurrentVersion.ENV.getServerPort(); // //if (pForSending) // //{ // // int firmNr_ = environment.getSysSettings().getInt(SettingsSysMob.MOB_SYS_FIRM, 1); // // port_ = CurrentVersion.getPortByFirmNr(firmNr_); // //} // return port_; //} bool connect(bool pForSending) { // Activate connections startConnectionManager(); // string server = CurrentVersion.ENV.getServerIp(); // environment.getAppSettings().getString(SettingsAvaAgent.MOB_SERVER_S); int port = CurrentVersion.ENV.getServerPort(); // getPort(pForSending);//CurrentVersion.ENV.getServerPort();// environment.getAppSettings().getInt(SettingsAvaAgent.MOB_PORT_I, 6000); ToolMobile.setRuntimeMsg("Connection: to server [" + server + "] via port [" + port + "]"); IPAddress ip = IPAddress.Parse(server); //Thread thread = new Thread(new ThreadStart(this._close)); //thread.Start(); System.Threading.Tasks.Task t = client.ConnectAsync(ip, port); try { t.Wait(timeout); } catch (Exception exc) { ToolMobile.setExceptionInner(t.Exception); } if (!client.Client.Connected) { throw new MyExceptionError(MessageCollection.T_MSG_ERROR_CONNECTION); } //thread.Abort(); stream = client.GetStream(); return(true); }
public void addMsg(string msg) { this.RunOnUiThread(() => { try { if (cData.Text == string.Empty) { setMsg(msg); } else { cData.Text += "\r\n" + msg; } cData.ScrollTo(0, int.MaxValue); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); } }); }
private void update(SqliteDataAdapter pAdapter, DataTable pDataTable) { if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterTableExt:update:beg"); } string CODE = null; foreach (DataRow row in pDataTable.Rows) { if (row.RowState != DataRowState.Unchanged) { DbCommand cmd_ = null; switch (row.RowState) { case DataRowState.Added: cmd_ = pAdapter.InsertCommand; break; case DataRowState.Deleted: cmd_ = pAdapter.DeleteCommand; break; case DataRowState.Modified: cmd_ = pAdapter.UpdateCommand; break; } if (cmd_ == null) { throw new MyExceptionError("Sql cmd is not generated"); } foreach (DbParameter prm in cmd_.Parameters) { object val_ = row[prm.SourceColumn, prm.SourceVersion]; prm.Value = val_; } if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg(cmd_.CommandText); var list = new List <string>(); foreach (DbParameter prm in cmd_.Parameters) { object val_ = row[prm.SourceColumn, prm.SourceVersion]; list.Add(val_.ToString()); } } int count_ = 0; if (row.RowState != DataRowState.Deleted) { if (row.Table.Columns.Contains("CODE")) { CODE = row["CODE"].ToString(); } } try { count_ = cmd_.ExecuteNonQuery(); } catch (Exception exc) { ToolMobile.setRuntimeMsg("SQL Error: CODE: " + (CODE ?? "NULL") + ": SQL:" + cmd_.CommandText); throw new Exception("SQL Error: " + (CODE ?? "NULL"), exc); } if (count_ == 0) { ToolMobile.setRuntimeMsg("DBConcurrencyException: " + (CODE ?? "NULL")); throw new DBConcurrencyException("DBConcurrencyException: " + (CODE ?? "NULL")); } } } }
//void adapter_RowUpdating(object sender, SqliteRowUpdatingEventArgs e) //{ //} public virtual object set(object pObj) { SqliteDataAdapter adp_ = null; try { if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterTableExt:set:beg"); } adp_ = createAdapter(); DataTable dataTable = (DataTable)pObj; ITableDescriptor desc_ = environment.getDbDescriptor().getTable(getName()); if (desc_ == null) { throw new MyExceptionError("Cant find table description for [" + getName() + "]"); } initCommands(adp_, dataTable, desc_); update(adp_, dataTable); //adapter.Update(dataTable); if (CurrentVersion.ENV.isDebugMode()) { ToolMobile.setRuntimeMsg("ImplAdapterTableExt:set:end"); } return(null); } catch (Exception exc) { ToolMobile.setRuntimeMsg(exc.ToString()); throw new Exception(exc.Message, exc); } finally { if (adp_ != null && adp_.InsertCommand != null) { adp_.InsertCommand.Dispose(); adp_.InsertCommand = null; } if (adp_ != null && adp_.UpdateCommand != null) { adp_.UpdateCommand.Dispose(); adp_.UpdateCommand = null; } if (adp_ != null && adp_.DeleteCommand != null) { adp_.DeleteCommand.Dispose(); adp_.DeleteCommand = null; } if (adp_ != null) { adp_.Dispose(); } } }
public void import(XmlDocument doc) { XmlElement rootNode = doc[_nodeRootName]; char sepChar = '\t'; string adpName = _userAdapter.getAdapterDataSet().getCode(); foreach (XmlNode itemNode in rootNode.ChildNodes) { if ((itemNode.Name == _nodeItemName) && (itemNode.Attributes[_attrRootCode].Value == adpName)) { _userAdapter.add(); DataSet dataSet = _userAdapter.getDataSet(); foreach (XmlNode itemNodeTable in itemNode.ChildNodes) { string colsList = itemNodeTable.Attributes[_attrItemTableCols].Value; string[] colsArr = ToolString.explodeList(sepChar, colsList); string tableName = itemNodeTable.Name; DataTable tableD = dataSet.Tables[tableName]; if (tableD == null) { throw new MyException.MyExceptionError(MessageCollection.T_MSG_ERROR_INNER, new object[] { tableName }); } tableD.Clear(); string data = itemNode.InnerText; // StringReader reader = new StringReader(data); var lineIndx = 0; var commitCounter = 0; string line; var listCode = new List <string>(); while ((line = reader.ReadLine()) != null) { ++lineIndx; try { if (line != string.Empty) { string[] arrData = ToolString.explodeList(sepChar, line); //line.Split(sepChar); if (arrData == null || arrData.Length != colsArr.Length) { throw new MyException.MyExceptionError(MessageCollection.T_MSG_ERROR_INVALID_ARGS_COUNT, new object[] { line }); } // if (lineIndx > 10) // break; var rowDic = new Dictionary <string, string>(); for (int indxColD = 0; indxColD < colsArr.Length; ++indxColD) { var col = colsArr[indxColD]; var colVal = arrData[indxColD]; if (col == "CODE") { var keyCode = colVal.ToUpperInvariant(); if (keyCode == "") { //throw new Exception("Record CODE is empty: index: " + lineIndx); colVal = "EMPTYCODE" + lineIndx; } else if (listCode.Contains(keyCode)) { throw new Exception("Record dublicate: " + keyCode); } else { listCode.Add(keyCode); } } rowDic[col] = colVal; } switch (tableName) { //case "FIRMPARAMS": // SqlExecute.executeNonQuery(_environment, "INSERT INTO L_FIRMPARAMS (LOGICALREF,CODE,VALUE) VALUES (@P1,@P2,@P3 )", // new object[] { rowDic["CODE"], rowDic["CODE"], rowDic["VALUE"] }); // break; //case "CLCARD": // SqlExecute.executeNonQuery(_environment, "INSERT INTO LG_$FIRM$_CLCARD (LOGICALREF,CODE,CLGRPCODE,CLGRPCODESUB) VALUES (@P1,@P2,@P3,@P4)", // new object[] { rowDic["LOGICALREF"], rowDic["CODE"], rowDic["CLGRPCODE"], rowDic["CLGRPCODESUB"] }); // break; //case "ITEMS": // SqlExecute.executeNonQuery(_environment, "INSERT INTO LG_$FIRM$_ITEMS (LOGICALREF,CODE,STGRPCODE,STGRPCODESUB) VALUES (@P1,@P2,@P3,@P4)", // new object[] { rowDic["LOGICALREF"], rowDic["CODE"], rowDic["STGRPCODE"], rowDic["STGRPCODESUB"] }); // break; default: { DataRow newRowD = _userAdapter.addRowToTable(tableD); foreach (var pair in rowDic) { DataColumn dCol = tableD.Columns[pair.Key]; if (dCol == null) { throw new MyException.MyExceptionError(MessageCollection.T_MSG_ERROR_INNER, new object[] { pair.Key }); } var value_ = _formating.parse(pair.Value, dCol.DataType); newRowD[dCol] = value_; } } break; } ++commitCounter; //if (commitCounter > 1) //{ // _userAdapter.update(); // _userAdapter.clear(); // tableD.Clear(); // // // // // commitCounter = 0; //} } } catch (Exception exc) { ToolMobile.setRuntimeMsg(line); ToolMobile.setRuntimeMsg(exc.ToString()); throw new Exception(exc.Message, exc); } } } _userAdapter.update(); } } }
void doneAsync() { lock (environment) { ISettings oldSysSettings = environment.getSysSettings(); try { // bool localDebugImport = false; #if DEBUG localDebugImport = false; #endif log.set(MessageCollection.T_MSG_OPERATION_STARTING); // ToolMobile.setRuntimeMsg("Data import starting"); if (!localDebugImport) { checkDataSource(); } // string fileWorkDir = Path.Combine(ToolMobile.curDir(), "data"); ToolMobile.createDir(fileWorkDir); string fileInputZip = Path.Combine(fileWorkDir, "fromava.zip"); string fileInputXml = Path.Combine(fileWorkDir, "fromava.xml"); // bool state = false; //Source if (localDebugImport)//CurrentVersion.ENV.isLocalExim() { //!!// } else { { // log.set(MessageCollection.T_MSG_DATA_RECEIVING); // AgentData ad = new AgentData(environment); ServerResult sr; ad.chackOperationResult(sr = ad.resiveData()); byte[] data = sr.data; // log.set(MessageCollection.T_MSG_DATA_WRITING); // ToolMobile.writeFileData(fileInputZip, data); ToolZip.decompress(fileInputZip, Path.GetDirectoryName(fileInputZip)); } } //Get log.set(MessageCollection.T_MSG_DATA_READING); // XmlDocument doc = new XmlDocument(); doc.Load(fileInputXml); // if (isSameData(doc, oldSysSettings)) { throw new Exception(MessageCollection.T_MSG_DATA_OLD); } // var commited = false; try { environment.beginBatch(); // #region delete firm prm log.set(MessageCollection.T_MSG_DATA_DELETING); // { string[] arrTables = new string[] { TableFIRMPARAMS.TABLE_FULL_NAME }; string[] arrDesc = new string[] { environment.translate(WordCollection.T_ADDITIONAL) }; deleteTables(arrTables, arrDesc); } // // #endregion // #region import firm prm // log.set(MessageCollection.T_MSG_DATA_IMPORT); // { AdapterUserRecords[] arrAdapters = new AdapterUserRecords[] { new AdapterUserFirmParams(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetFirmParams(environment))) }; string[] arrDesc = new string[] { environment.translate(WordCollection.T_ADDITIONAL) }; importRecords(doc, arrAdapters, arrDesc); } #endregion // #region sys settings environment.setSysSettings(getSysSettings()); //environment.getSysSettings().set(SettingsSysMob.MOB_SYS_LAST_IMPORT, DateTime.Now); #endregion // #region delete rec log.set(MessageCollection.T_MSG_DATA_DELETING); // { string[] arrTables = new string[] { TableCLCARD.TABLE_FULL_NAME, TableITEMS.TABLE_FULL_NAME, TableWHOUSE.TABLE_FULL_NAME, TableINFOFIRM.TABLE_FULL_NAME, TableINFOPERIOD.TABLE_FULL_NAME, TableINFODOCSAVE.TABLE_FULL_NAME }; string[] arrDesc = new string[] { environment.translate(WordCollection.T_CLIENT), environment.translate(WordCollection.T_MATERIAL), environment.translate(WordCollection.T_WAREHOUSE), environment.translate(WordCollection.T_INFO), environment.translate(WordCollection.T_INFO), environment.translate(WordCollection.T_INFO) }; deleteTables(arrTables, arrDesc); } // // #endregion // #region docs log.set(MessageCollection.T_MSG_DOCS_DELETING); // DateTime limDate = environment.getSysSettings().getDateTime(SettingsSysMob.MOB_SYS_CMD_DELETE_DOCS_BEFORE, new DateTime(DateTime.Now.Year, 1, 1)); { string[][] arrTablesGroup = new string[][] { new string[] { TableINVOICE.TABLE_FULL_NAME, TableSTLINE.TABLE_LONG }, new string[] { TableORFICHE.TABLE_FULL_NAME, TableORFLINE.TABLE_LONG }, new string[] { TableKSLINES.TABLE_FULL_NAME } }; string[] arrDesc = new string[] { environment.translate(WordCollection.T_DOC_STOCK_TRANS), environment.translate(WordCollection.T_DOC_STOCK_ORDERS), environment.translate(WordCollection.T_DOC_FINANCE) }; deleteDocTables(arrTablesGroup, arrDesc, limDate); } #endregion // #region import // log.set(MessageCollection.T_MSG_DATA_IMPORT); // { AdapterUserRecords[] arrAdapters = new AdapterUserRecords[] { new AdapterUserClient(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetClient(environment))), new AdapterUserMaterial(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetMaterial(environment))), new AdapterUserWarehouse(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetWarehouse(environment))), new AdapterUserInfoFirm(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetInfoFirm(environment))), new AdapterUserInfoPeriod(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetInfoPeriod(environment))), new AdapterUserInfoDocSave(environment, new ImplAdapterDataSetStub(environment, new AdapterDataSetInfoDocSave(environment))) }; string[] arrDesc = new string[] { environment.translate(WordCollection.T_CLIENT), environment.translate(WordCollection.T_MATERIAL), environment.translate(WordCollection.T_WAREHOUSE), environment.translate(WordCollection.T_INFO), environment.translate(WordCollection.T_INFO), environment.translate(WordCollection.T_INFO) }; importRecords(doc, arrAdapters, arrDesc); } #endregion //clear // environment.clearStateData(); // //ToolMobile.setRuntimeMsg("Data importded, commit started"); environment.commitBatch(); // state = true; commited = true; // ToolMobile.setRuntimeMsg("Data importded, commited"); #region files { try { var files = doc.SelectSingleNode("DATA/ITEM[@ei_code='ADP_FILES']"); if (files != null) { foreach (var file in files) { var el = file as XmlElement; if (el != null) { var dir = ToolXml.getAttribValue(el, "dir", null); var name = ToolXml.getAttribValue(el, "name", null); var value_ = ToolXml.getAttribValue(el, "value", null); if (dir != null && name != null && value_ != null) { if (Path.IsPathRooted(dir)) { log.error(WordCollection.T_FILE + ": Path rooted: " + dir); } else { if (!ToolMobile.existsDir(dir)) { ToolMobile.createDir(dir); } var path = Path.Combine(dir, name); log.set(WordCollection.T_FILE + ": " + path); var data = Convert.FromBase64String(value_); ToolMobile.writeFileData(path, data); } } } } } } catch (Exception exc) { ToolMobile.setExceptionInner(exc); log.error("Files import error"); ToolMobile.setException(exc); } } #endregion } catch (Exception exc) { try { ToolMobile.setExceptionInner(exc); } catch { } try { if (!commited) { ToolMobile.setRuntimeMsg("Data import error, rollback started"); environment.rollbackBatch(); ToolMobile.setRuntimeMsg("Data import error, rollback ended"); } } catch { } environment.setSysSettings(oldSysSettings); throw new Exception(exc.Message, exc); } //if (commited) //{ // var dir = "cache"; // if (ToolMobile.existsDir(dir)) // ToolMobile.deleteDir(dir); //} } catch (Exception exc) { ToolMobile.setExceptionInner(exc); var err = ToolException.unwrap(exc); ToolMobile.setRuntimeMsg(err); ToolMobile.getContextLast().RunOnUiThread(() => { try { Android.Widget.Toast.MakeText(Android.App.Application.Context, err, Android.Widget.ToastLength.Long).Show(); } catch { } }); // ActivityExt.errMessageOnResume = err; log.error(ToolException.unwrap(exc)); environment.getExceptionHandler().setException(exc); } finally { log.set(MessageCollection.T_MSG_OPERATION_FINISHING); Thread.Sleep(1000); log.hide(); } } }