/// <summary> /// Sets the BattletNet API token if we don't have one for this instance. /// </summary> /// <returns></returns> public async Task SetToken() { if (string.IsNullOrEmpty(accessCode)) { BattleNetToken token = await GetAccessToken(); accessCode = token.access_token; } }
public void SetBattleNetdAuthorization(BattleNetToken token, string id) { User user = context.users.Where(u => u.DiscordID == id).FirstOrDefault(); if (user != null) { DateTime now = DateTime.Now; user.BattleNetToken = token.access_token; user.BattleNetTokenExpiration = now; } }
/// <summary> /// Loads All users characters from the BattleNet API and stores them in the database. /// </summary> /// <param name="accessToken">users Access token for the BattleNet API</param> /// <param name="userId">users ID to link character to user</param> /// <returns></returns> public async Task <Task> SetCharactersFromBattleNet(BattleNetToken token, string userId) { await SetToken(); var account = await warcraftClient.GetAccountProfileSummaryAsync(token.access_token, nameSpace); if (account.Success && account.Value.WowAccounts != null) { foreach (var wowAccount in account.Value.WowAccounts) { foreach (var character in wowAccount.Characters) { if (character?.Id != null && character.Realm.Id == realmId && character.Faction.Name == guildFaction && character?.Level > 0) { try { var id = character.Id; var wowCharacter = context.wow_characters.Where(c => c.character_id == id).FirstOrDefault(); if (wowCharacter == null) { wowCharacter = new WoWCharacter { name = character.Name, realm = character.Realm.Name, character_id = id, discord_id = userId }; context.Add(wowCharacter); context.SaveChanges(); } else { wowCharacter.name = character.Name; } await UpdateCharacter(wowCharacter); } catch (Exception e) { Console.WriteLine(e); } } } } } await SetGuildRanks(userId); return(Task.CompletedTask); }