Example #1
0
        //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);
        }
Example #2
0
        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);
        }