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); }
public void Load(GuildRosterJson guildRosterJson) { if (CheckJson(guildRosterJson)) { if (Members.Any()) { Members.Clear(); } foreach (GuildMemberJson member in guildRosterJson.Members) { Members.Add(new GuildMember(member)); } } }
private async Task FillRoster(GuildRosterJson guildRosterJson) { List <Task> tasks = new List <Task>(); foreach (GuildMemberJson memberJson in guildRosterJson.Members) { if (memberJson.Member != null && memberJson.Member.Realm != null) { CharacterJson characterJson = new CharacterJson { Id = memberJson.Member.Id, Name = memberJson.Member.Name, Realm = new RealmJson { Slug = memberJson.Member.Realm.Slug } }; tasks.Add(FillCharacter(characterJson)); } } await Task.WhenAll(tasks).ConfigureAwait(false); }
public Guild(GuildJson guildJson, GuildAchievementsJson guildAchievementsJson, GuildRosterJson guildRosterJson) : this() { Load(guildJson); Load(guildAchievementsJson); Load(guildRosterJson); }