public async Task <Guild> RefreshGuild(string name, string realm)
        {
            Blizzard.Guild blizzardGuild = await Task.Run(() => _blizzard.GetGuild(name, realm));

            if (blizzardGuild != null)
            {
                return(await Task.Run(() => _codex.Update(Mapper.Map <Blizzard.Guild, Data.Guild>(blizzardGuild))));
            }
            return(null);
        }
        public async Task RefreshGuildsAsync()
        {
            try
            {
                var guilds = await GetGuilds();

                foreach (Guild g in guilds)
                {
                    Blizzard.Guild blizzardGuild = await Task.Run(() => _blizzard.GetGuild(g.Name, g.Realm));

                    if (blizzardGuild != null)
                    {
                        await Task.Run(() => _codex.Update(Mapper.Map <Blizzard.Guild, Data.Guild>(blizzardGuild)));
                    }
                }
            }
            catch
            {
                throw;
            }
        }
        public Blizzard.Guild GetGuild(string guildName, string guildRealm, params string[] fields)
        {
            if (fields == null || fields.Count() == 0)
            {
                fields = new string[] { "members" };
            }
            else if (!fields.Contains("members"))
            {
                fields = fields.Union(new string[] { "members" }).ToArray();
            }

            Dictionary <string, string> parameters = new Dictionary <string, string>()
            {
                { "fields", string.Join(",", fields) }
            };

            parameters = GetDefaultParameters(parameters);
            var responseBody = Get(_communityUrl + "guild/" + guildRealm + "/" + guildName, parameters);

            Blizzard.Guild guild = JsonConvert.DeserializeObject <Blizzard.Guild>(responseBody);
            return(guild);
        }