public async Task <JobStats> GetStats() { return(await StatsRequests.RequestStats(client)); }
public async Task <Dictionary <Guid, UserStats> > GetStatsAsync(Platform platform, params Guid[] userIds) { var response = await StatsRequests.GetStats(this, platform, userIds); var result = new Dictionary <Guid, UserStats>(); foreach (var kv in response.Results) { var userId = Guid.Parse(kv.Key); var allStats = kv.Value; var allOperatorStats = new List <OperatorStats>(); foreach (var op in Operators.Data) { var gadgetStats = new Dictionary <string, int>(); foreach (var gadgetStatId in op.Gadgets) { gadgetStats.Add(gadgetStatId, GetStatValue(allStats, $"{gadgetStatId}:{op.FullIndex}:infinite")); } var operatorStats = new OperatorStats { Operator = op, TimePlayed = GetStatValue(allStats, $"operatorpvp_timeplayed:{op.FullIndex}:infinite"), Kills = GetStatValue(allStats, $"operatorpvp_kills:{op.FullIndex}:infinite"), Deaths = GetStatValue(allStats, $"operatorpvp_death:{op.FullIndex}:infinite"), RoundsWon = GetStatValue(allStats, $"operatorpvp_roundwon:{op.FullIndex}:infinite"), RoundsLost = GetStatValue(allStats, $"operatorpvp_roundlost:{op.FullIndex}:infinite"), GadgetStats = gadgetStats }; allOperatorStats.Add(operatorStats); } result.Add(userId, new UserStats { Operators = allOperatorStats, CasualStats = GetQueueStats(allStats, "casual"), RankedStats = GetQueueStats(allStats, "ranked"), PvpStats = new PvpStats { Deaths = GetStatValue(allStats, "generalpvp_death:infinite"), Kills = GetStatValue(allStats, "generalpvp_kills:infinite"), MatchesLost = GetStatValue(allStats, "generalpvp_matchlost:infinite"), MatchesWon = GetStatValue(allStats, "generalpvp_matchwon:infinite"), TimePlayed = GetStatValue(allStats, "generalpvp_timeplayed:infinite"), Dbno = GetStatValue(allStats, "generalpvp_dbno:infinite"), Headshots = GetStatValue(allStats, "generalpvp_headshot:infinite"), Revives = GetStatValue(allStats, "generalpvp_revive:infinite"), Suicides = GetStatValue(allStats, "generalpvp_suicide:infinite"), BlindKills = GetStatValue(allStats, "generalpvp_blindkills:infinite"), BulletsFired = GetStatValue(allStats, "generalpvp_bulletfired:infinite"), BulletsHit = GetStatValue(allStats, "generalpvp_bullethit:infinite"), DeniedRevives = GetStatValue(allStats, "generalpvp_revivedenied:infinite"), DbnoAssists = GetStatValue(allStats, "generalpvp_dnboassists:infinite"), GadgetsDestroyed = GetStatValue(allStats, "generalpvp_gadgetdestroy:infinite"), HostagesDefended = GetStatValue(allStats, "generalpvp_hostagedefense:infinite"), HostagesRescued = GetStatValue(allStats, "generalpvp_hostagerescue:infinite"), KillAssists = GetStatValue(allStats, "generalpvp_killassists:infinite"), MeleeKills = GetStatValue(allStats, "generalpvp_meleekills:infinite"), PenetrationKills = GetStatValue(allStats, "generalpvp_penetrationkills:infinite"), RappelBreaches = GetStatValue(allStats, "generalpvp_rappelbreach:infinite") }, GameModes = new GameModesStats { Bomb = GetGameModeStats(allStats, "plantbomb"), Hostage = GetGameModeStats(allStats, "rescuehostage"), SecureArea = GetGameModeStats(allStats, "securearea") }, WeaponStats = new Dictionary <WeaponType, WeaponStats> { { WeaponType.Assault, GetWeaponStats(allStats, "1") }, { WeaponType.Smg, GetWeaponStats(allStats, "2") }, { WeaponType.Lmg, GetWeaponStats(allStats, "3") }, { WeaponType.Sniper, GetWeaponStats(allStats, "4") }, { WeaponType.Pistol, GetWeaponStats(allStats, "5") }, { WeaponType.Shotgun, GetWeaponStats(allStats, "6") }, { WeaponType.MachinePistol, GetWeaponStats(allStats, "7") }, { WeaponType.Shield, GetWeaponStats(allStats, "8") }, { WeaponType.Launcher, GetWeaponStats(allStats, "9") }, { WeaponType.B, GetWeaponStats(allStats, "B") } } }); } return(result); }