Beispiel #1
0
 public Clan GetClan(string tag = null)
 {
     tag = (tag == null) ? Config.ClanTag : (!tag.StartsWith("#")) ? $"#{tag}" : tag;
     using (var client = new CRClient(_uriBaseUrl, _credentials))
     {
         return(client.GetClan(tag));
     }
 }
Beispiel #2
0
        public List <CardStat> GetCardsWinByPlayerIntoClan(int startTrophes, int?locationId = null)
        {
            var result = new List <CardStat>();

            try
            {
                var cardwins = new List <CardStat>();
                var clans    = GetClansRank(startTrophes, locationId);
                using (var client = new CRClient(_uriBaseUrl, _credentials))
                {
                    foreach (var clan in clans)
                    {
                        if (DemandStopping)
                        {
                            break;
                        }
                        var clanDetail = client.GetClan(clan.Tag);
                        var cardwin    = InternalGetCardWin(clanDetail.MemberList.Cast <PlayerBase>().ToList());
                        cardwins.AddRange(cardwin);
                    }
                }

                result = cardwins.GroupBy(p => p.Name).Select(p => new CardStat {
                    Name = p.First().Name, Count = p.Sum(c => c.Count), Url = p.First().Url
                }).OrderByDescending(p => p.Count).ToList();

                var posi      = 0;
                var lastusage = int.MaxValue;
                foreach (var card in result)
                {
                    if (card.Count != lastusage)
                    {
                        posi++;
                        lastusage = card.Count;
                    }
                    card.Rank = posi;
                }
            }
            catch (Exception ex)
            {
                Logger?.Error(ex);
            }
            finally
            {
                DemandStopping = false;
            }
            return(result);
        }