/// <summary> /// get records by query /// </summary> /// <param name="infoCenter"></param> /// <param name="query"></param> /// <param name="recordDetail"></param> /// <param name="rowAccess"></param> /// <param name="chunkSize"></param> /// <param name="tableInfo"></param> /// <returns></returns> public VisionMessage GetRecordsByQuery(string infoCenter, string query, RecordDetail recordDetail = RecordDetail.Empty, bool rowAccess = false, int chunkSize = 100, XElement tableInfo = null) { try { VisionMessage _retval = new VisionMessage(); int _nextChunk = 1; bool _lastChunk = false; string _sessionId = ""; string _connInfo = GetConnectionInfo(); XElement _xQuery = new XElement("Queries", new XElement("Query", query, new XAttribute("ID", 1))); do { string _xmlretval = service.GetRecordsByQuery( _connInfo, GetInfoCenterXML(infoCenter, rowAccess, _nextChunk, chunkSize, tableInfo), _xQuery.ToString(), recordDetail.GetValueName() ); //read loop moved into separate method... _lastChunk = ReadResult(ref _sessionId, _xmlretval, ref _retval); if (string.IsNullOrEmpty(_sessionId) == false) { _connInfo = GetVisionConnInfoXML(database, username, password, _sessionId); } _nextChunk += 1; } while (_lastChunk == false); return(_retval); } catch (Exception ex) { logger.Error(ex, $"GetRecordsByQuery() with query [{query}] call failed"); return(VisionMessage.FromException(ex)); } }
/// <summary> /// retrieves record by UID /// </summary> /// <param name="udicName"></param> /// <param name="id"></param> /// <param name="recordDetail"></param> /// <returns></returns> public VisionMessage GetUDICRecordsByKey(string udicName, string id, RecordDetail recordDetail = RecordDetail.Empty) { try { VisionMessage _retval = new VisionMessage(); int _nextChunk = 1; bool _lastChunk = false; string _sessionId = ""; string _connInfo = GetConnectionInfo(); do { string _xmlretval = service.GetUDICByKey( _connInfo, udicName, id, recordDetail.GetValueName() ); //read loop moved into separate method... _lastChunk = ReadResult(ref _sessionId, _xmlretval, ref _retval); if (string.IsNullOrEmpty(_sessionId) == false) { _connInfo = GetVisionConnInfoXML(database, username, password, _sessionId); } _nextChunk += 1; } while (_lastChunk == false); return(_retval); } catch (Exception ex) { logger.Error(ex, $"GetUDICRecordsByKey() for {udicName} with key [{id}] call failed"); return(VisionMessage.FromException(ex)); } }