public async Task <Guild> GetGuildBySlug(string realmSlug, string guildSlug, bool forceUpdate = false) { Realm realm = await GetRealmBySlug(realmSlug, forceUpdate).ConfigureAwait(false); Guild guild = forceUpdate ? null : await _dbManager.GetGuildBySlug(realm.Slug, guildSlug).ConfigureAwait(false); bool update = forceUpdate || await CheckDbData(guild).ConfigureAwait(false); if (update) { guild = await DbInsertFromApi <Guild, GuildJson>($"data/wow/guild/{realm.Slug}/{guildSlug}", Namespace.Dynamic).ConfigureAwait(false); guild.Slug = guildSlug; guild.Load(await _blizzardApiReader.GetAsync <GuildAchievementsJson>($"data/wow/guild/{guild}/{guildSlug}/achievements", Namespace.Profile).ConfigureAwait(false)); guild.Load(await _blizzardApiReader.GetAsync <GuildRosterJson>($"data/wow/guild/{guild}/{guildSlug}/roster ", Namespace.Profile).ConfigureAwait(false)); } return(guild); }
public async Task InitGuild(string realmSlug, string guildSlug) { List <Task> DropTasks = new List <Task> { _dbManager.Drop <Guild>(), _dbManager.Drop <Character>() }; await Task.WhenAll(DropTasks).ConfigureAwait(false); Guild guild = new Guild { Slug = guildSlug, RealmSlug = realmSlug }; GuildJson guildJson = await _blizzardApiReader.GetAsync <GuildJson>($"data/wow/guild/{realmSlug}/{guildSlug}", Namespace.Profile).ConfigureAwait(false); guild.Load(guildJson); GuildAchievementsJson guildAchievementsJson = await _blizzardApiReader.GetAsync <GuildAchievementsJson>($"data/wow/guild/{realmSlug}/{guildSlug}/achievements", Namespace.Profile).ConfigureAwait(false); guild.Load(guildAchievementsJson); GuildRosterJson guildRosterJson = await _blizzardApiReader.GetAsync <GuildRosterJson>($"data/wow/guild/{realmSlug}/{guildSlug}/roster", Namespace.Profile).ConfigureAwait(false); if (guildRosterJson != null) { await FillRoster(guildRosterJson).ConfigureAwait(false); } guild.Load(guildRosterJson); await _dbManager.Insert(guild).ConfigureAwait(false); }