private void ProcessGym(GymData gym) { if (gym == null) { return; } Statistics.Instance.TotalReceivedGyms++; var keys = _alarms.Keys.ToList(); for (var i = 0; i < keys.Count; i++) { var guildId = keys[i]; var alarms = _alarms[guildId]; if (!alarms.EnableGyms) { continue; } if (alarms.Alarms?.Count == 0) { continue; } var gymAlarms = alarms.Alarms?.FindAll(x => x.Filters?.Gyms != null); for (var j = 0; j < gymAlarms.Count; j++) { var alarm = gymAlarms[j]; if (alarm.Filters.Gyms == null) { continue; } if (!alarm.Filters.Gyms.Enabled) { //_logger.Info($"[{alarm.Name}] Skipping gym GymId={gym.GymId}, GymName={gym.GymName}: gym filter not enabled."); continue; } var geofence = GeofenceService.InGeofence(alarm.Geofences, new Location(gym.Latitude, gym.Longitude)); if (geofence == null) { //_logger.Info($"[{alarm.Name}] Skipping gym GymId={gym.GymId}, GymName={gym.GymName} because not in geofence."); continue; } OnGymAlarmTriggered(gym, alarm, guildId); } } }
private void ParseGym(dynamic message) { try { GymData gym = JsonConvert.DeserializeObject <GymData>(Convert.ToString(message)); if (gym == null) { _logger.Error($"Failed to parse gym webhook object: {message}"); return; } OnGymReceived(gym); } catch (Exception ex) { _logger.Error(ex); _logger.Debug(Convert.ToString(message)); } }
private void ProcessGym(GymData gym) { if (!_alarms.EnableGyms) { return; } if (gym == null) { return; } if (_alarms.Alarms?.Count == 0) { return; } for (var i = 0; i < _alarms.Alarms.Count; i++) { var alarm = _alarms.Alarms[i]; if (alarm.Filters.Gyms == null) { continue; } if (!alarm.Filters.Gyms.Enabled) { _logger.Info($"[{alarm.Name}] Skipping gym GymId={gym.GymId}, GymName={gym.GymName}: gym filter not enabled."); continue; } var geofence = InGeofence(alarm.Geofences, new Location(gym.Latitude, gym.Longitude)); if (geofence == null) { //_logger.Info($"[{alarm.Name}] Skipping gym GymId={gym.GymId}, GymName={gym.GymName} because not in geofence."); continue; } OnGymAlarmTriggered(gym, alarm); } }
private void OnGymAlarmTriggered(GymData gym, AlarmObject alarm, ulong guildId) { GymAlarmTriggered?.Invoke(this, new AlarmEventTriggeredEventArgs <GymData>(gym, alarm, guildId)); }
private void OnGymReceived(GymData gym) => GymReceived?.Invoke(this, new DataReceivedEventArgs <GymData>(gym));
public GymDataEventArgs(GymData gym) { Gym = gym; }