public async Task <GenericResponse <LolStatsResponse> > GetStatsFromSite(string gameUsername) { var requestId = _requestFactory.GenerateRequest($"lol/summoner/v3/summoners/by-name/{gameUsername}", Method.GET, "lol"); var lolId = _restClient.Execute <LolResponse>(requestId); if (lolId.StatusCode.IsStatusOk()) { var id = new GenericResponse <LolResponse>(lolId.Data).Result.Id; var request = _requestFactory.GenerateRequest($"lol/league/v3/positions/by-summoner/{id}", Method.GET, "lol"); var lolUser = _restClient.Execute <List <LolListStatsResponse> >(request); if (lolUser.StatusCode.IsStatusOk()) { if (lolUser.Data.Count() == 2) { var lolStats = new LolStatsResponse { SoloQ = lolUser.Data[1], FlexQ = lolUser.Data[0] }; return(new GenericResponse <LolStatsResponse>(lolStats)); } else if (lolUser.Data.Count() < 2) { return(new GenericResponse <LolStatsResponse>(LolTools.NoRankResponse())); } else { var lolStats = new LolStatsResponse { SoloQ = lolUser.Data[1], FlexQ = lolUser.Data[2] }; return(new GenericResponse <LolStatsResponse>(lolStats)); } } else { return(new GenericResponse <LolStatsResponse>($"Cannot get stats for {gameUsername} (error {lolUser.StatusCode})", null)); } } else { return(new GenericResponse <LolStatsResponse>($"Cannot get stats for {gameUsername} (error {lolId.StatusCode})", null)); } }
public async Task <GenericResponse <IEnumerable <TLolStat> > > GetLeaderboard(string sortBy) { try { // Get sorting functions var sortingFunctions = LolTools.GetSortingFunctions(sortBy); if (sortingFunctions.Item1 == null && sortingFunctions.Item2 == null) { return(new GenericResponse <IEnumerable <TLolStat> >($"Sort mode {sortBy} is not valid", null)); } var leaderboardUsers = _databaseContext.TLolStat .Include(s => s.UserGame) .ThenInclude(ug => ug.User) .OrderByDescending(sortingFunctions.Item1) .ThenByDescending(sortingFunctions.Item2) .Take(50); return(new GenericResponse <IEnumerable <TLolStat> >(leaderboardUsers)); } catch (Exception e) { return(new GenericResponse <IEnumerable <TLolStat> >("Cannot get leaderboard", e)); } }