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 }); }