public async Task Remove(AlarmItem alarm)
 {
     try
     {
         await _geofenceManager.RemoveGeofence(alarm.GeofenceId);
         _databaseManager.Delete(alarm);
         OnAlarmsSetChanged();
     }
     catch (Exception e)
     {
         _logService.Log(Tag, e);
         throw;
     }
 }
        public async Task AddAlarm(AlarmItem alarm)
        {
            try
            {
                alarm.GeofenceId = Guid.NewGuid().ToString();

                await _geofenceManager.AddGeofence(alarm.GeofenceId, alarm.Latitude, alarm.Longitude, alarm.Radius);
                _databaseManager.Add(alarm);
                OnAlarmsSetChanged();
            }
            catch (Exception e)
            {
                _logService.Log(Tag, e);
                throw;
            }
        }
        public async Task SwitchEnabled(AlarmItem alarm)
        {
            try
            {
                var newEnabledValue = !alarm.Enabled;

                if (newEnabledValue)
                    await _geofenceManager.AddGeofence(alarm.GeofenceId, alarm.Latitude, alarm.Longitude, alarm.Radius);
                else
                    await _geofenceManager.RemoveGeofence(alarm.GeofenceId);

                alarm.Enabled = newEnabledValue;
                _databaseManager.Update(alarm);
                OnAlarmsSetChanged();
            }
            catch (Exception e)
            {
                _logService.Log(Tag, e);
                throw;
            }
        }