AdvancedLauncher.Providers.GameKing.GameKingWebProvider.GetGuildInfo C# (CSharp) Метод

GetGuildInfo() защищенный Метод

protected GetGuildInfo ( Guild &guild, bool isDetailed ) : bool
guild AdvancedLauncher.SDK.Model.Entity.Guild
isDetailed bool
Результат bool
        protected override bool GetGuildInfo(ref Guild guild, bool isDetailed)
        {
            if (LogManager != null) {
                LogManager.InfoFormat("Obtaining info of {0}", guild.Name);
            }
            List<Tamer> tamerList = new List<Tamer>();
            HtmlNode ranking = tryLoadNode(string.Format(STR_URL_GUILD_PAGE, guild.Identifier, "srv" + guild.Server.Identifier), STR_RANKING_NODE);
            HtmlNodeCollection tlist = ranking.SelectNodes("//tr/td[@class='level']");
            using (IDatabaseContext context = DatabaseManager.CreateContext()) {
                for (int i = 0; i < tlist.Count; i++) {
                    Tamer tamer = new Tamer() {
                        Guild = guild,
                        Name = ClearStr(ranking.SelectNodes("//td[@class='guild']")[i].InnerText),
                        Level = Convert.ToByte(ClearStr(ranking.SelectNodes("//td[@class='level']")[i].InnerText)),
                        Rank = Convert.ToInt32(ClearStr(ranking.SelectNodes("//td[@class='ranking']")[i].InnerText))
                    };
                    OnStatusChanged(DMODownloadStatusCode.GETTING_TAMER, tamer.Name, i, tlist.Count - 1);

                    string tamerType = ranking.SelectNodes("//td[@class='guild']//img")[i].GetAttributeValue("src", null);
                    tamerType = tamerType.Substring(tamerType.LastIndexOf('/') + 1, tamerType.LastIndexOf('.') - tamerType.LastIndexOf('/') - 1);
                    tamer.Type = context.FindTamerTypeByCode(Convert.ToInt32(tamerType));

                    Regex r = new Regex(STR_TAMER_ID_REGEX, RegexOptions.IgnoreCase | RegexOptions.Singleline);
                    Match m = r.Match(ranking.SelectNodes("//td[@class='detail']")[i].InnerHtml);
                    if (m.Success) {
                        tamer.AccountId = Convert.ToInt32(m.Groups[2].ToString());
                        tamer.Digimons = GetDigimons(tamer, isDetailed);

                        Digimon partner = tamer.Digimons.FirstOrDefault(d => d.Type.IsStarter);
                        if (partner != null) {
                            partner.Name = ClearStr(ranking.SelectNodes("//td[@class='partner']")[i].InnerText);
                        }

                        tamerList.Add(tamer);
                        if (LogManager != null) {
                            LogManager.InfoFormat("Found tamer \"{0}\"", tamer.Name);
                        }
                    }
                }
            }
            if (tamerList.Count == 0) {
                return false;
            }
            guild.Tamers = tamerList;
            return true;
        }