コード例 #1
0
ファイル: PogoDB.cs プロジェクト: trembon/PoGoSlackBot
        public void UpdatePokemonSpawn(SpawnedPokemon spawnedPokemon)
        {
            if (spawnedPokemon.Despawn < DateTime.MinValue)
            {
                return;
            }

            try
            {
                lock (dbLock)
                {
                    using (var context = new PogoDBContext())
                    {
                        var pokemonSpawn = context.PokemonSpawns.FirstOrDefault(ps => ps.EncounterID == spawnedPokemon.EncounterID);
                        if (pokemonSpawn == null)
                        {
                            return;
                        }

                        pokemonSpawn.Despawn = pokemonSpawn.Despawn;
                        context.SaveChanges();
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error(ex, "Failed to update pokemon spawn in database.");
            }
        }
コード例 #2
0
ファイル: PokemonHandler.cs プロジェクト: psafth/PoGoSlackBot
        public void HandleSpawnedPokemon(SpawnedPokemon spawnedPokemon)
        {
            if (!spawnedEncounters.Contains(spawnedPokemon.EncounterID))
            {
                spawnedEncounters.Add(spawnedPokemon.EncounterID);

                PogoDB.AddPokemonSpawn(spawnedPokemon);

                var message = new SpawnedPokemonMessage(spawnedPokemon, nearbyEncounters.Contains(spawnedPokemon.EncounterID), pogoInstance.Configuration);
                message.Send();
            }
        }
コード例 #3
0
ファイル: PogoDB.cs プロジェクト: psafth/PoGoSlackBot
 public static void AddPokemonSpawn(SpawnedPokemon spawnedPokemon)
 {
     try
     {
         lock (addLock)
         {
             using (var context = new PogoDBContext())
             {
                 context.PokemonSpawns.Add(spawnedPokemon);
                 context.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         log.Error(ex, "Failed to add pokemon spawn to database.");
     }
 }
コード例 #4
0
        public void HandleSpawnedPokemon(SpawnedPokemon spawnedPokemon)
        {
            if (!spawnedEncounters.ContainsKey(spawnedPokemon.SpawnPointID) || spawnedEncounters[spawnedPokemon.SpawnPointID].EncounterID != spawnedPokemon.EncounterID)
            {
                this.pogoInstance.Database.AddPokemonSpawn(spawnedPokemon);

                log.Info($"Pokemon, {spawnedPokemon.PokemonID.ToString()}, spawned at long:{spawnedPokemon.Longitude},lat:{spawnedPokemon.Latitude}");
                var message = new SpawnedPokemonMessage(spawnedPokemon, pogoInstance.Configuration);
                message.Send();

                spawnedEncounters[spawnedPokemon.SpawnPointID] = spawnedPokemon;
                if (!nearbyEncounters.ContainsKey(spawnedPokemon.EncounterID))
                {
                    nearbyEncounters.Add(spawnedPokemon.EncounterID, spawnedPokemon.Encountered);
                }
            }
            else
            {
                this.pogoInstance.Database.UpdatePokemonSpawn(spawnedPokemon);
            }
        }
コード例 #5
0
 public SpawnedPokemonMessage(SpawnedPokemon spawnedPokemon, InstanceConfiguration configuration) : base(configuration)
 {
     this.spawnedPokemon = spawnedPokemon;
 }
コード例 #6
0
 public SpawnedPokemonMessage(SpawnedPokemon spawnedPokemon, bool wasNearby, InstanceConfiguration configuration) : base(configuration)
 {
     this.spawnedPokemon = spawnedPokemon;
     this.wasNearby      = wasNearby;
 }