Пример #1
0
        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));
        }
Пример #2
0
 public async Task <IEnumerable <TournamentRanking> > GetTournamentRanking()
 {
     return(await _ranking.GetTournamentRankings());
 }