Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
 private void OnGymAlarmTriggered(GymData gym, AlarmObject alarm, ulong guildId)
 {
     GymAlarmTriggered?.Invoke(this, new AlarmEventTriggeredEventArgs <GymData>(gym, alarm, guildId));
 }
Ejemplo n.º 5
0
 private void OnGymReceived(GymData gym) => GymReceived?.Invoke(this, new DataReceivedEventArgs <GymData>(gym));
Ejemplo n.º 6
0
 public GymDataEventArgs(GymData gym)
 {
     Gym = gym;
 }