Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public void Load(GuildRosterJson guildRosterJson)
 {
     if (CheckJson(guildRosterJson))
     {
         if (Members.Any())
         {
             Members.Clear();
         }
         foreach (GuildMemberJson member in guildRosterJson.Members)
         {
             Members.Add(new GuildMember(member));
         }
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public Guild(GuildJson guildJson, GuildAchievementsJson guildAchievementsJson, GuildRosterJson guildRosterJson) : this()
 {
     Load(guildJson);
     Load(guildAchievementsJson);
     Load(guildRosterJson);
 }