Exemple #1
0
        private void PumpManager_PumpConnectedEvent(object sender, PumpConnectedEventArgs e)
        {
            try
            {
                PumpModel pump = PumpManager.Instance.ConnectedPump;

                // If a pump session is active go straight to the pumping screen
                if ((pump.ActualState == PumpState.Start) || (pump.ActualState == PumpState.Pause))
                {
                    if (SessionManager.Instance.CurrentSession == null)
                    {
                        SessionManager.Instance.ContinuePumping();
                        Xamarin.Forms.Device.BeginInvokeOnMainThread(() =>
                        {
                            PageManager.Me.SetPage(typeof(PumpSessionPage));
                        });
                    }
                }

                pump.PropertyChanged += Pump_PropertyChanged;

                if (_cloudSyncComplete)
                {
                    SyncPump();
                }
            }
            catch (Exception ex)
            {
                Debugger.Break();
                AnalyticsManager.Instance.TrackError(ex);
                throw;
            }
        }
        private async void _bluetoothManager_PumpConnected(object sender, PumpConnectedEventArgs e)
        {
            _connectedPump             = e.Pump;
            _connectedPump.IsConnected = true;
            _connectedPump.InUse       = true;

            PumpModel proxyPump = _pairedPumps.Where(p => p.Id == e.Pump.Id).FirstOrDefault();

            // We have not saved this pump to our paired list yet
            if (proxyPump == null)
            {
                _pairedPumps.Add(_connectedPump);

                DataManager dataManager = DataManager.Instance;
                User        user        = (await dataManager.User.ToEnumerableAsync()).FirstOrDefault();

                if (user != null)
                {
                    Pump pump = new Pump()
                    {
                        Id         = Guid.NewGuid().ToString(),
                        Name       = _connectedPump.Name,
                        Identifier = _connectedPump.Id.ToString(),
                        ProfileId  = user.DefaultProfileId
                    };

                    await dataManager.AddUpdatePump(pump);
                }
            }
            else
            {
                // Replace the proxy pump
                _pairedPumps.Remove(proxyPump);
                _pairedPumps.Add(_connectedPump);
            }

            // Convert log entries to history entries
            ConvertLogEntriesToPumpingHistory();

            // Check if update is available
            CheckForUpdates();

            PumpConnectedEvent?.Invoke(this, new PumpConnectedEventArgs()
            {
                Pump = _connectedPump
            });
        }