public async Task <List <LiveTeamRanking> > TotalRank() { var TournamentRank = _ranking.GetTournamentRankings().Result.ToList(); var TournomentLive = TournamentRank.Select(s => new LiveTeamRanking { TeamId = s.TeamId, TeamName = s.TeamName, TeamRank = Convert.ToInt32(s.TeamRank), TotalPoints = s.TotalPoints, KillPoints = s.KillPoints, RankPoints = s.RankPoints }); var LiveRank = this.GetLiveRanking().Result.OrderByDescending(x => x.TotalPoints).ToList(); var TotalRank = TournamentRank.Join(LiveRank, innerKey => innerKey.TeamId, outerkey => outerkey.TeamId, (tournamentrak, liverank) => new LiveTeamRanking() { TeamId = liverank.TeamId, TeamName = tournamentrak.TeamName, TotalPoints = tournamentrak.TotalPoints + liverank.TotalPoints, KillPoints = tournamentrak.KillPoints + liverank.KillPoints, RankPoints = tournamentrak.RankPoints + liverank.RankPoints, }).OrderByDescending(x => x.TotalPoints).ToList(); var NewTotal = TotalRank.Select(s => new LiveTeamRanking() { TeamId = s.TeamId, TeamName = s.TeamName, KillPoints = s.KillPoints, TotalPoints = s.TotalPoints, RankPoints = s.RankPoints, TeamRank = TotalRank.FindIndex(a => a.TotalPoints == s.TotalPoints) + 1 }).ToList(); var combined = TournomentLive.Union(NewTotal).OrderByDescending(x => x.TotalPoints). GroupBy(x => x.TeamId).Select(g => g.First()).ToList(); return(await Task.FromResult(combined)); }
public async Task <IEnumerable <TournamentRanking> > GetTournamentRanking() { return(await _ranking.GetTournamentRankings()); }