Esempio n. 1
0
        /// <summary>
        /// Gets the clans from top.
        /// </summary>
        /// <param name="race">The race.</param>
        /// <param name="sort">The sort.</param>
        /// <param name="pageFrom">The page from.</param>
        /// <param name="pageTo">The page to.</param>
        /// <returns></returns>
        public List <Clan> GetClansFromTop(Race race, TopSearchSort sort, int pageFrom, int pageTo)
        {
            var result = new List <Clan>();

            for (var i = pageFrom; i <= pageTo; i++)
            {
                result.AddRange(GetClansFromTop(race, sort, i));
            }
            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Gets the top users links.
        /// </summary>
        /// <param name="sort">The sort.</param>
        /// <param name="race">The race.</param>
        /// <param name="pages">The pages.</param>
        /// <returns></returns>
        public List <string> GetTopUsersLinks(TopSearchSort sort, Race race, IRange <int> pages)
        {
            var links = new List <string>();

            for (var page = pages.From; page <= pages.To; page++)
            {
                var table = GetTopObjectTable(TopSearchType.Player, sort, race, page);
                links.AddRange(table.Links
                               .Where(l => !string.IsNullOrEmpty(l.Url) && l.Url.StartsWith(UrlPlayer))
                               .Select(l => l.Url));
            }

            return(links);
        }
Esempio n. 3
0
        private Table GetTopObjectTable(TopSearchType type, TopSearchSort sort, Race race, int page)
        {
            if (page < 0 || page > 19)
            {
                throw new ArgumentOutOfRangeException("page");
            }

            OpenUrl(UrlTop + "?t=" + (int)type);

            SelectListValue("sort", (int)sort);
            SelectListValue("race", (int)race);
            SelectListValue("limit", page);
            browser.Element(Find.ByName("show")).Click();
            var table = browser.Table(Find.ByClass("default"));

            return(table);
        }
Esempio n. 4
0
        /// <summary>
        /// Gets the clans from top.
        /// </summary>
        /// <param name="race">The race.</param>
        /// <param name="sort">The sort.</param>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        public List <Clan> GetClansFromTop(Race race, TopSearchSort sort, int page)
        {
            var table     = GetTopObjectTable(TopSearchType.Clan, sort, race, page);
            var result    = new List <Clan>();
            var urlMather = UrlClan + "?id=";
            var clansUrls = table.Links
                            .Where(e => !string.IsNullOrEmpty(e.Url) && e.Url.StartsWith(urlMather))
                            .Select(e => e.Url).ToArray();


            foreach (var url in clansUrls)
            {
                OpenUrl(url);
                var clan = GetClanFromPage();
                if (clan != null)
                {
                    result.Add(clan);
                }
            }
            return(result);
        }
Esempio n. 5
0
 /// <summary>
 /// Gets the clans from top.
 /// </summary>
 /// <param name="race">The race.</param>
 /// <param name="sort">The sort.</param>
 /// <returns></returns>
 public List <Clan> GetClansFromTop(Race race, TopSearchSort sort)
 {
     return(GetClansFromTop(race, sort, 0, TopSearchMaxPage));
 }