//SQL Commands public async Task <CPendingDataReading> CheckUnclosedSessions() { SendMessage("Searching for non closed sessions with this device"); var _result = new CPendingDataReading(); using (var _rs = new XMLRS($"Select IdSession,xusr from SequencingSessionCab where dbo.CheckFlag(flags,'CLOSED')=0 and datediff(MINUTE,xfec,getdate())<120 and ScannerID='{Values.MyDeviceInfo.DeviceCode}' order by xfec desc", Conn)) { await _rs.OpenAsync(); if (_rs.RecordCount != 0) { SendMessage($"Found unclosed session {_rs["IdSession"]}"); _result.SessionID = _rs["IdSession"].ToString(); _result.UserCode = _rs["xusr"].ToString(); using (var det = new XMLRS($"Select SequenceNumber,TicketVIN,TicketPartnumber,LabelPartnumber,LabelExtraData from SequencingSessionDet where IdSession='{_result.SessionID}' order by Line", Conn)) { await det.OpenAsync(); while (!det.EOF) { var _d = new DataReading(); var extra = det["LabelExtraData"].ToString(); _d.SequenceNumber = det["SequenceNumber"].ToString(); _d.Batch = extra != "" ? extra.Split('|')[0].Split(':')[1] : ""; _d.PartnumberLabel = det["LabelPartnumber"].ToString(); _d.PartnumberSeqLabel = det["TicketPartnumber"].ToString(); _d.VINNr = det["TicketVIN"].ToString(); _d.TrollLocation = extra != "" ? extra.Split('|')[1].Split(':')[1] : ""; _d.Qty = 1; _result.Readings.Add(_d); SendMessage($"Found Sequence {_d.SequenceNumber}"); det.MoveNext(); } } } else { SendMessage("No pending sessions found."); return(null); } } return(_result); }
public async Task <CPendingDataReading> CreateNewSession(string system, string customerService, string cod3, string userCode, string serial) { SendMessage("Creating new session."); var _result = new CPendingDataReading(); int _minSeq; int _maxSeq; var _sp = new SPXML(Conn, "pSequencingSessionCabAdd"); //_sp.AddParameterValue("msg", _msg); _sp.AddParameterValue("System", system); _sp.AddParameterValue("CustomerService", customerService); _sp.AddParameterValue("COD3", cod3); _sp.AddParameterValue("UserCode", userCode); _sp.AddParameterValue("DeviceSerial", serial); await _sp.ExecuteAsync(); if (_sp.LastMsg.Substring(0, 2) != "OK") { SendError($"Error returned by SQL Server:\n {_sp.LastMsg}"); return(_result); } _result.SessionID = _sp.LastMsg.Substring(3); _result.UserCode = userCode; _minSeq = _sp.Parameters["@MinSequence"].Value.ToInt(); _maxSeq = _sp.Parameters["@MaxSequence"].Value.ToInt(); SendMessage($"New session created {_result.SessionID}"); SendMessage($"Assigning sequences from {_minSeq} to {_maxSeq}"); for (int i = _minSeq; i <= _maxSeq; i++) { var _d = new DataReading(); _d.SequenceNumber = i.ToString(); _result.Readings.Add(_d); } return(_result); }