private static IRestRequest BuildRestRequestForMatchHistory(MatchHistoryRequest mhRequest) { var request = new RestRequest(RequestPaths.Dota2.Match.MatchHistory); if (mhRequest.Hero != Hero.None) request.AddQueryParameter("hero_id", ((int) mhRequest.Hero)); if (mhRequest.GameMode != GameMode.None) request.AddQueryParameter("game_mode", ((int) mhRequest.GameMode)); if (mhRequest.Skill != SkillLevel.Any) request.AddQueryParameter("skill", ((int) mhRequest.Skill)); if (mhRequest.DateMin != DateTime.MinValue) request.AddQueryParameter("date_min", UnixTimeStamptFromDateTime(mhRequest.DateMin)); if (mhRequest.DateMax != DateTime.MinValue) request.AddQueryParameter("date_max", UnixTimeStamptFromDateTime(mhRequest.DateMax)); if (mhRequest.MinimumPlayers > 0) request.AddQueryParameter("min_players", mhRequest.MinimumPlayers); if (mhRequest.AccountId > 0) request.AddQueryParameter("account_id", mhRequest.AccountId); if (!string.IsNullOrEmpty(mhRequest.LeagueId)) request.AddQueryParameter("league_id", mhRequest.LeagueId); if (mhRequest.StartAtMatchId > 0) request.AddQueryParameter("start_at_match_id", mhRequest.StartAtMatchId); if (mhRequest.NumberOfMatchesRequested > 0) request.AddQueryParameter("matches_requested", mhRequest.NumberOfMatchesRequested); if (mhRequest.TournamentGamesOnly) request.AddQueryParameter("tournament_games_only", mhRequest.TournamentGamesOnly); return request; }
public IEnumerable<MatchHistory> GetMatchHistory(MatchHistoryRequest matchHistoryRequest) { var request = BuildRestRequestForMatchHistory(matchHistoryRequest); var response = Execute<MatchHistoryResponseWrapper>(request); return Mapper.Map<List<MatchHistory>>(response.Matches); }