Пример #1
0
        public void RecordWeeklyClanStats()
        {
            Logger.Debug("Begin RecordWeeklyStats");

            var clan     = GetClan();
            var members  = clan.members?.ToList();
            var database = new CRClanStatsFactory().Create();

            foreach (var member in members)
            {
                Logger.Debug($"Updating stats for {member.name}");
                Logger.Debug($"      Clan Donations:              {clan.donations}");
                Logger.Debug($"      Member Count:                {clan.memberCount}");
                Logger.Debug($"      Missing Members Count:       {clan.memberCount}");
                Logger.Debug($"      New Members Count:           {clan.memberCount}");
                Logger.Debug($"      Active Members Count:        {clan.members.Length}");
                Logger.Debug($"      Total Clan Battles:          {clan.clanChest.crowns}");
                Logger.Debug($"      Total Clan Friendly Battles: {member.donationsReceived}");
                Logger.Debug($"      Most Friendly Player:        {member.donationsReceived}");
                Logger.Debug($"      Biggest Ladder Winner:       {member.donationsReceived}");
                Logger.Debug($"      Biggest Ladder Loser:        {member.donationsReceived}");

                try
                {
                    var playerRecord = database.Players?.Single(p => p.Tag == member.tag);
                    var playerStat   = new PlayerStat()
                    {
                        RecordDate = DateTime.UtcNow,

                        DonationsCount         = member.donations ?? 0,
                        DonationsReceivedCount = member.donationsReceived ?? 0,
                        //DonationsDelta = member.donationsDelta ?? 0,
                        PlayerRole           = database.PlayerRoles?.Single(r => r.RoleName == member.role),
                        ClanChestCrownsCount = member.clanChestCrowns ?? 0,
                        Trophies             = member.trophies
                    };

                    playerRecord.PlayerStats.Add(playerStat);
                }
                catch (Exception ex)
                {
                    Logger.Error("Update failed", ex);
                    throw;
                }
            }

            database.SaveChanges();

            Logger.Info($"Updated stats for {members.Count} clan members");
            Logger.Debug("End RecordWeeklyStats");
        }
Пример #2
0
        public void GatherClanStats()
        {
            Logger.Debug("Begin GatherClanStats");

            var clan     = GetClan();
            var members  = clan.members?.ToList();
            var database = new CRClanStatsFactory().Create();

            AddNewMembers(database, members);
            RemoveMissingMembers(database, members);
            UpdatePlayersStats(database, members);

            Logger.Debug("End GatherClanStats");
        }
Пример #3
0
        public void RecordClanChestStats()
        {
            Logger.Debug("Begin RecordClanChestStats");

            var clan     = GetClan();
            var members  = clan.members?.ToList();
            var database = new CRClanStatsFactory().Create();

            foreach (var member in members)
            {
                Logger.Debug($"Updating stats for {member.name}");
                Logger.Debug($"      Crowns:                        {clan.clanChest.crowns}");
                Logger.Debug($"      Role:                       {clan.clanChest.crowns}");
                Logger.Debug($"      Trophies:                   {clan.clanChest.crowns}");
                Logger.Debug($"      Arena:                      {clan.clanChest.crowns}");
                Logger.Debug($"      Current Donations:          {clan.clanChest.crowns}");
                Logger.Debug($"      Current Donations Delta:    {clan.clanChest.crowns}");
                Logger.Debug($"      Current Donations Received: {member.donationsReceived}");

                try
                {
                    var playerRecord = database.Players?.Single(p => p.Tag == member.tag);
                    var playerStat   = new PlayerStat()
                    {
                        RecordDate = DateTime.UtcNow,

                        DonationsCount         = member.donations ?? 0,
                        DonationsReceivedCount = member.donationsReceived ?? 0,
                        //DonationsDelta = member.donationsDelta ?? 0,
                        PlayerRole           = database.PlayerRoles?.Single(r => r.RoleName == member.role),
                        ClanChestCrownsCount = member.clanChestCrowns ?? 0,
                        Trophies             = member.trophies
                    };

                    playerRecord.PlayerStats.Add(playerStat);
                }
                catch (Exception ex)
                {
                    Logger.Error("Update failed", ex);
                    throw;
                }
            }

            database.SaveChanges();


            Logger.Debug("End RecordClanChestStats");
        }