public async Task <object> GetTotalDamage() { var LeaderDamage = this.GetKillLeaderListToppedByDamageDealt().Result.killList.OrderBy(x => x.teamId).ToList(); var DamageLists = _liveRepository.GetLiveDamageList().Result.DamageList.OrderBy(x => x.TeamId).ToList(); var JoinedDamage = LeaderDamage.Join(DamageLists, innerKey => innerKey.playerId, outerkey => outerkey.PlayerId, (first, second) => new Kills { teamId = second.TeamId, playerId = first.playerId, playerName = first.playerName, DamageDealt = Math.Round(first.DamageDealt + second.DamageDealt), timeSurvived = first.timeSurvived, kills = first.kills } ).OrderByDescending(x => x.DamageDealt).ToList(); var TotalCombined = LeaderDamage.Union(JoinedDamage).OrderByDescending(x => x.DamageDealt).ToList(); var DistinctPlayers = TotalCombined.GroupBy(p => p.playerId).Select(g => g.First()).ToList(); return(await Task.FromResult(DistinctPlayers)); }
public Task <LiveDamageList> GetLiveDamageList() { return(_liveRepository.GetLiveDamageList()); }