void HandleGeofenceAdded (object sender, GeofenceChangeEventArgs e)
		{
			_successfullyRestored = e.RequestId.SequenceEqual (_activeAlarms.Select (alarm => alarm.RequestId).ToArray ());
			Log.Debug (TAG, "HandleGeofenceAdded " + _successfullyRestored);
			_dbManager.EnableAlarms (
				_activeAlarms.Where (alarm => e.RequestId.Contains (alarm.RequestId)).ToList (), true);

			_geofenceManager.Stop ();
		}
        void HandleGeofenceAdded(object sender, GeofenceChangeEventArgs e)
        {
            _successfullyRestored = e.RequestId.SequenceEqual(_activeAlarms.Select(alarm => alarm.RequestId).ToArray());
            Log.Debug(TAG, "HandleGeofenceAdded " + _successfullyRestored);
            _dbManager.EnableAlarms(
                _activeAlarms.Where(alarm => e.RequestId.Contains(alarm.RequestId)).ToList(), true);

            _geofenceManager.Stop();
        }
        void OnGeofenceManagerGeofenceRemoved(object sender, GeofenceChangeEventArgs e)
        {
            if (LocationStatusCodes.Success == e.Status)
            {
                if (_changesToProceed[0].Item1 == ActionOnAlarm.Disable)
                {
                    _dbManager.DisableAlarm(_changesToProceed[0].Item2.RequestId);
                }
                else
                {
                    _dbManager.DeleteAlarm(_changesToProceed[0].Item2);
                }
            }

            lock (_changesToProceed)
            {
                _changesToProceed.RemoveAt(0);
            }

            _isProcessing = false;

            ProcessNextChange();
        }