Beispiel #1
0
        public async Task Transfer()
        {
            if (Transmitting)
            {
                return;
            }
            Transmitting = true;
            foreach (var IndividualList in ListsToTransfer.Where(o => o.HasItemsToTransfer))
            {
                while (IndividualList.HasItemsToTransfer && connectionWorking)
                {
                    var itemToTransfer = IndividualList.ItemToTransfer;
                    using (SPXML sp = new SPXML(conn, "pLaunchProcess_ReadingSessionControl"))
                    {
                        //SPXML _sp = new SPXML(Values.gDatos, "pLaunchProcess_ReadingSessionControl");
                        sp.AddParameterValue("@DB", IndividualList.DataBase);
                        sp.AddParameterValue("@ProcedureName", IndividualList.ProcedureName);
                        sp.AddParameterValue("@Parameters", itemToTransfer.ProcedureParameters());
                        sp.AddParameterValue("@TableDB", "");
                        sp.AddParameterValue("@TableName", "");
                        sp.AddParameterValue("@TablePK", "");
                        try
                        {
                            await sp.ExecuteAsync();

                            if (sp.LastMsg.Substring(0, 2) != "OK")
                            {
                                Transmitting = false;
                                OnTransmissionError(new TransmissionErrorEventArgs()
                                {
                                    ErrorMessage = sp.LastMsg
                                });
                                return;
                            }
                            else
                            {
                                itemToTransfer.Status = dataStatus.TRANSMITTED;
                            }
                        }
                        catch (Exception ex)
                        {
                            Transmitting = false;
                            OnTransmissionError(new TransmissionErrorEventArgs()
                            {
                                ErrorMessage = ex.Message
                            });
                            return;
                        }
                    }
                    {
                    }
                }
            }
        }
Beispiel #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);
        }
Beispiel #3
0
        private async Task <bool> ActionGo(string data)
        {
            if (data == "")
            {
                await cSounds.Error(Activity);

                Toast.MakeText(Activity, "Please enter one valid Order Number", ToastLength.Long).Show();
                data = "";
                return(false);
            }

            string _orderNumber;
            string _blockCode;

            if (data.IsNumeric() && data.Length > 6)
            {
                _orderNumber = data;
                _blockCode   = "";
            }
            else
            {
                _orderNumber = null;
                _blockCode   = data;
            }
            //buttonOk.Enabled = false;
            Values.gDatos.DataBase = "LOGISTICA";
            Values.iFt.pushInfo("Creating Session");
            var _sp = new SPXML(Values.gDatos, "pAddCabReadingSession");

            _sp.AddParameterValue("Block", _blockCode);
            //_sp.AddParameterValue("Service", " ");
            _sp.AddParameterValue("User", Values.gDatos.User);
            _sp.AddParameterValue("orderNumber", _orderNumber);
            try
            {
                await _sp.ExecuteAsync();
            }
            catch (Exception ex)
            {
                Toast.MakeText(Activity, ex.Message, ToastLength.Long).Show();
                Values.iFt.pushInfo(ex.Message);
                data = "";
                //buttonOk.Enabled = true;
                return(false);
            }
            Values.iFt.pushInfo("Done");
            Values.gSession    = _sp.LastMsg.Substring(3);
            Values.hFt.t2.Text = string.Format("Session: {0}", Values.gSession);
            Values.gBlock      = _sp.ReturnValues()["@Block"].ToString();

            if (_orderNumber != null)
            {
                Values.gOrderNumber = data.ToInt();
                Values.hFt.t4.Text  = string.Format("Order: {0}", Values.gOrderNumber);
            }

            Values.gService = _sp.ReturnValues()["@Service"].ToString();

            //update database data
            //await Values.sFt.ChangeProgressVisibility(true);
            var _settings = new Settings {
                User = Values.gDatos.User, Password = Values.gDatos.Password, Block = Values.gBlock, Order = Values.gOrderNumber, Session = Values.gSession, Service = Values.gService
            };
            await Values.SQLidb.db.ExecuteAsync("DELETE FROM Settings");

            await Values.SQLidb.db.InsertAsync(_settings);

            await getDataFromServer();

            Values.SQLidb.Complete = true;
            //await Values.sFt.ChangeProgressVisibility(false);
            return(true);
        }
Beispiel #4
0
        public static async Task Transfer()
        {
            if (Transmitting)
            {
                return;
            }
            Transmitting = true;
            //readings
            while (true)
            {
                try
                {
                    var query = await Values.SQLidb.db.Table <ScannedData>().Where(r => r.Transmitted == false).OrderBy(o => o.idreg).ToListAsync();

                    if (query.Count == 0)
                    {
                        break;
                    }
                    foreach (var r in query)
                    {
                        //show the list in the debug fragment
                        //var q = await Values.SQLidb.db.Table<ScannedData>().Where(z => z.Transmitted == false).ToListAsync();
                        //Values.dFt.Clear();
                        //q.ForEach(async z => await Values.dFt.pushInfo(z.Action, z.LabelRack+z.Serial, z.Partnumber, z.Qty.ToString()));
                        //Thread.Sleep(500);
                        if (DataTransferManager.monitor.State == NetworkState.ConnectedData || DataTransferManager.monitor.State == NetworkState.ConnectedWifi)
                        {
                            //Values.sFt.socksProgress.Visibility = ViewStates.Visible;
                            Values.gDatos.DataBase = "PROCESOS";
                            using (SPXML _sp = new SPXML(Values.gDatos, "pLaunchProcess_ReadingSessionControl"))
                            {
                                //SPXML _sp = new SPXML(Values.gDatos, "pLaunchProcess_ReadingSessionControl");
                                _sp.AddParameterValue("@DB", "LOGISTICA");
                                _sp.AddParameterValue("@ProcedureName", "pReadingSessionControl");
                                _sp.AddParameterValue("@Parameters", r.ProcedureParameters());
                                _sp.AddParameterValue("@TableDB", "");
                                _sp.AddParameterValue("@TableName", "");
                                _sp.AddParameterValue("@TablePK", "");
                                try
                                {
                                    await _sp.ExecuteAsync();

                                    if (_sp.LastMsg.Substring(0, 2) != "OK")
                                    {
                                        Transmitting = false;
                                        return;
                                    }
                                    else
                                    {
                                        r.Transmitted = true;
                                        await Values.SQLidb.db.UpdateAsync(r);

                                        Values.sFt.UpdateInfo();
                                        //switch (r.Action)
                                        //{
                                        //    case "CHECK":
                                        //        Values.sFt.CheckQtyTransmitted++;
                                        //        break;
                                        //    case "ADD":
                                        //        Values.sFt.ReadQtyTransmitted++;
                                        //        break;
                                        //}
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Transmitting = false;
                                    Values.dFt.SetMessage(ex.Message);
                                    return;
                                }
                            }
                        }
                        else
                        {
                            Transmitting = false;
                            return;
                        }
                    }
                }
                catch
                {
                    Transmitting = false;
                    return;
                }
            }
            //location data
            while (true)
            {
                try
                {
                    var query = await Values.SQLidb.db.Table <DeviceLocation>().Where(r => r.Transmitted == false).OrderBy(o => o.idreg).ToListAsync();

                    if (query.Count == 0)
                    {
                        break;
                    }
                    foreach (var r in query)
                    {
                        //show the list in the debug fragment
                        //var q = await Values.SQLidb.db.Table<ScannedData>().Where(z => z.Transmitted == false).ToListAsync();
                        //Values.dFt.Clear();
                        //q.ForEach(async z => await Values.dFt.pushInfo(z.Action, z.LabelRack+z.Serial, z.Partnumber, z.Qty.ToString()));
                        //Thread.Sleep(500);
                        if (DataTransferManager.monitor.State == NetworkState.ConnectedData || DataTransferManager.monitor.State == NetworkState.ConnectedWifi)
                        {
                            //Values.sFt.socksProgress.Visibility = ViewStates.Visible;
                            Values.gDatos.DataBase = "PROCESOS";
                            using (SPXML _sp = new SPXML(Values.gDatos, "pLaunchProcess_ReadingSessionControl"))
                            {
                                //SPXML _sp = new SPXML(Values.gDatos, "pLaunchProcess_ReadingSessionControl");
                                _sp.AddParameterValue("@DB", "LOGISTICA");
                                _sp.AddParameterValue("@ProcedureName", "pReadingSessionControlLocation");
                                _sp.AddParameterValue("@Parameters", r.ProcedureParameters());
                                _sp.AddParameterValue("@TableDB", "");
                                _sp.AddParameterValue("@TableName", "");
                                _sp.AddParameterValue("@TablePK", "");
                                try
                                {
                                    await _sp.ExecuteAsync();

                                    if (_sp.LastMsg.Substring(0, 2) != "OK")
                                    {
                                        Transmitting = false;
                                        return;
                                    }
                                    else
                                    {
                                        r.Transmitted = true;
                                        await Values.SQLidb.db.UpdateAsync(r);

                                        Values.sFt.UpdateInfo();
                                        //switch (r.Action)
                                        //{
                                        //    case "CHECK":
                                        //        Values.sFt.CheckQtyTransmitted++;
                                        //        break;
                                        //    case "ADD":
                                        //        Values.sFt.ReadQtyTransmitted++;
                                        //        break;
                                        //}
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Transmitting = false;
                                    Values.dFt.SetMessage(ex.Message);
                                    return;
                                }
                            }
                        }
                        else
                        {
                            Transmitting = false;
                            return;
                        }
                    }
                }
                catch
                {
                    Transmitting = false;
                    return;
                }
            }
            //Values.dFt.SetMessage("");
            Transmitting = false;
            return;
        }
Beispiel #5
0
        private async Task <bool> ActionGo()
        {
            //buttonOk.Enabled = false;
            Values.gDatos.DataBase = "SEQUENCING";
            //await getDataFromServer();
            //Values.iFt.pushInfo("Creating Session");
            //string _msg = "";
            var _sp = new SPXML(Values.gDatos, "SEQUENCING..pSequencingSessionCabAdd");

            //_sp.AddParameterValue("msg", _msg);
            _sp.AddParameterValue("System", Values.System);
            _sp.AddParameterValue("CustomerService", CustomerService);
            _sp.AddParameterValue("COD3", COD3);
            _sp.AddParameterValue("UserCode", gDatos.User);
            try
            {
                await _sp.ExecuteAsync();
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, ex.Message, ToastLength.Long).Show();
                //Values.iFt.pushInfo(ex.Message);
                //buttonOk.Enabled = true;
                return(false);
            }
            //iFt.pushInfo("Done");
            Session = _sp.LastMsg.Substring(3);
            //hFt.t2.Text = string.Format("Session: {0}", Values.Session);
            //get if service should have gps control

            /*
             * using (var rs = new XMLRS($"Select GEO=dbo.CheckFlag(flags,'GEO'), COD3 from {Values.System}..Servicios WHERE Codigo='{CustomerService}'", Values.gDatos))
             * {
             *  await rs.OpenAsync();
             *  if (rs.RecordCount != 0)
             *  {
             *      IsLocationService = rs["GEO"].ToInt() == 1;
             *      COD3 = rs["COD3"].ToString();
             *      sFt.LocationVisibility = true;
             *  }
             *  else
             *  {
             *      IsLocationService = false;
             *      sFt.LocationVisibility = false;
             *  }
             * }
             * // create GeoSession
             * Values.gDatos.DataBase = "GEO";
             * using (var sp = new SPXML(gDatos, "GEO..pGeoSessionCabAdd"))
             * {
             *  sp.AddParameterValue("COD3", COD3);
             *  sp.AddParameterValue("System", Values.System);
             *  sp.AddParameterValue("Service", CustomerService);
             *  sp.AddParameterValue("ServiceSession", Session);
             *  sp.AddParameterValue("UserCode", gDatos.User);
             *  try
             *  {
             *      await sp.ExecuteAsync();
             *      Values.GeoSession = sp.LastMsg.Substring(3);
             *  }
             *  catch (Exception ex)
             *  {
             *      Toast.MakeText(this, $"Failure starting GeoLocation: {ex.Message}", ToastLength.Long).Show();
             *      //Values.iFt.pushInfo(ex.Message);
             *      Values.IsLocationService = false;
             *      //return false;
             *      //buttonOk.Enabled = true;
             *  }
             *
             *  Values.gDatos.DataBase = "LOGISTICA";
             *
             *
             * }
             */
            //update database data
            //await Values.sFt.ChangeProgressVisibility(true);
            var _settings = new Settings {
                User = Values.gDatos.User, Password = gDatos.Password, Session = Session, Service = CustomerService, COD3 = COD3
            };
            await Values.SQLidb.db.ExecuteAsync("DELETE FROM Settings");

            await Values.SQLidb.db.InsertAsync(_settings);

            Values.SQLidb.Complete = true;
            //await Values.sFt.ChangeProgressVisibility(false);
            return(true);
        }