/// <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); }
/// <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); }
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); }
/// <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); }
/// <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)); }