Esempio n. 1
0
        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);
        }
Esempio n. 2
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);
        }