public void AddSpinnedFortToDatabase(int dbSessionId, FortSearchOutProto fortSearchProto) { using (var context = new MySQLContext()) { LogEntry fortLogEntry = new LogEntry { LogEntryType = LogEntryType.Fort, timestamp = DateTime.UtcNow }; fortLogEntry.XpReward = fortSearchProto.XpAwarded; this.AddLogEntry(context, dbSessionId, fortLogEntry); context.SaveChanges(); } }
public void AddQuest(FortSearchOutProto fort) { using (var context = new RocketMapContext()) { if (fort.FortId == null || fort.ChallengeQuest == null || fort.ChallengeQuest.Quest.QuestRewards == null || fort.ChallengeQuest.Quest.QuestRewards.Count <= 0) { return; } JsonSerializerOptions jsonSettings = new JsonSerializerOptions { DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull }; String query = "INSERT INTO trs_quest (GUID, quest_type, quest_timestamp, quest_stardust, quest_pokemon_id, " + "quest_pokemon_form_id, quest_pokemon_costume_id, " + "quest_reward_type, quest_item_id, quest_item_amount, quest_target, quest_condition, quest_reward, " + "quest_task, quest_template) VALUES (\"{0}\", {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, \'{11}\', \'{12}\', \"{13}\", \"{14}\")" + "ON DUPLICATE KEY UPDATE quest_type=VALUES(quest_type), quest_timestamp=VALUES(quest_timestamp), " + "quest_stardust=VALUES(quest_stardust), quest_pokemon_id=VALUES(quest_pokemon_id), " + "quest_reward_type=VALUES(quest_reward_type), quest_item_id=VALUES(quest_item_id), " + "quest_item_amount=VALUES(quest_item_amount), quest_target=VALUES(quest_target), " + "quest_condition=VALUES(quest_condition), quest_reward=VALUES(quest_reward), " + "quest_task=VALUES(quest_task), quest_template=VALUES(quest_template), " + "quest_pokemon_form_id=VALUES(quest_pokemon_form_id), " + "quest_pokemon_costume_id=VALUES(quest_pokemon_costume_id)"; var quest = fort.ChallengeQuest.Quest; var reward = fort.ChallengeQuest.Quest.QuestRewards[0]; int itemAmount = reward.Item != null ? (int)reward.Item.Amount : 0; int pokemonId = reward.PokemonEncounter != null ? (int)reward.PokemonEncounter.PokemonId : 0; if (reward.Type == QuestRewardProto.Types.Type.Candy) { itemAmount = reward.Candy.Amount; pokemonId = (int)reward.Candy.PokemonId; } if (reward.Type == QuestRewardProto.Types.Type.MegaResource) { itemAmount = reward.MegaResource.Amount; pokemonId = (int)reward.MegaResource.PokemonId; } int FormId = 0; int CostumeId = 0; if (reward.PokemonEncounter != null && reward.PokemonEncounter.PokemonDisplay != null) { FormId = (int)reward.PokemonEncounter.PokemonDisplay.Form; CostumeId = (int)reward.PokemonEncounter.PokemonDisplay.Costume; } try { //TODO: Add task text query = String.Format(query, fort.FortId, (int)quest.QuestType, DateTimeOffset.UtcNow.ToUnixTimeSeconds(), reward.Stardust, pokemonId, FormId, CostumeId, (int)reward.Type, reward.Item != null ? (int)reward.Item.Item : "0", itemAmount, quest.Goal.Target, JsonSerializer.Serialize(quest.Goal.Condition, jsonSettings), JsonSerializer.Serialize(quest.QuestRewards, jsonSettings), GetQuestTaskText(quest.QuestType, quest.Goal.Condition, quest.Goal.Target, quest.TemplateId), // Task text quest.TemplateId).Replace("{", "{{").Replace("}", "}}"); context.Database.ExecuteSqlRaw(query); } catch (Exception e) { Log.Information(e.Message); Log.Information(e.StackTrace); Log.Information($"Object: {JsonSerializer.Serialize(fort)} \n Query: {query}"); } } }