public async Task <BaseMatchResult> GetMatch(string gamerTag, Enumeration.GameMode gameMode, Guid id) { var match = await StatsBusiness.GetMatch(gameMode, id, gamerTag); await Context.CommitChanges(); return(match); }
public void GetConstructedUri_InGameMode_MatchesExpected(Enumeration.GameMode gameMode) { var query = new GetMatches() .InGameMode(gameMode); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?modes={gameMode}", uri); }
public void GetConstructedUri_InGameModes_MatchesExpected(Enumeration.GameMode gameMode1, Enumeration.GameMode gameMode2) { var query = new GetMatches() .InGameModes(new List <Enumeration.GameMode> { gameMode1, gameMode2 }); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?modes={gameMode1},{gameMode2}", uri); }
public void GetConstructedUri_Complex_MatchesExpected(string gamertag, Enumeration.GameMode gameMode, int skip, int take) { var query = new GetMatches() .ForPlayer(gamertag) .InGameMode(gameMode) .Skip(skip) .Take(take); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{gamertag}/matches?modes={gameMode}&start={skip}&count={take}", uri); }
public async Task <BaseMatchResult> GetMatch(Enumeration.GameMode gameMode, Guid id, string gamerTag) { BaseMatchResult match = null; switch (gameMode) { case Enumeration.GameMode.Arena: var arenaMatch = await _statsRepository.GetArenaMatch(id); match = await GetMatchResult(arenaMatch, gamerTag); break; case Enumeration.GameMode.Campaign: var campaignMatch = await _statsRepository.GetCampaignMatch(id); match = GetMatchResult(campaignMatch, gamerTag); break; case Enumeration.GameMode.Custom: var customMatch = await _statsRepository.GetCustomMatch(id); match = await GetMatchResult(customMatch, gamerTag); break; case Enumeration.GameMode.Warzone: MatchEvents matchEvents = await _statsRepository.GetEventsForMatch(id); var warzoneMatch = await _statsRepository.GetWarzoneMatch(id); match = await GetMatchResult(warzoneMatch, gamerTag, matchEvents); break; default: return(null); } if (match != null) { match.GameMode = gameMode; match.Id = id; } return(match); }
public async Task <IActionResult> GetMatch(string gamerTag, Enumeration.GameMode gameMode, Guid id) { var match = await StatsBusiness.GetMatch(gameMode, id, gamerTag); return(Content(match, "application/json")); }
/// <summary> /// Indicates what game mode the client is interested in getting matches for (arena, campaign, custom, or /// warzone). /// </summary> /// <param name="gameMode">The Game Mode the client is interested in.</param> public GetMatches InGameMode(Enumeration.GameMode gameMode) { Parameters["modes"] = gameMode.ToString(); return(this); }
public async Task <string> GetMatch(Enumeration.GameMode gameMode, Guid id, string gamerTag) { if (_settings.CacheResults) { var result = await _db.FindAsync <MatchResultData>(id.ToString()); if (result != null) { return(result.Data); } } MatchEvents matchEvents = await _statsRepository.GetEventsForMatch(id); matchEvents.GameEvents = matchEvents.GameEvents.Where(e => e.EventName == Enumeration.EventType.Death).ToList(); MatchResult match = null; switch (gameMode) { case Enumeration.GameMode.Arena: var arenaMatch = await _statsRepository.GetArenaMatch(id); match = await GetMatchResult(arenaMatch, gamerTag, matchEvents); break; case Enumeration.GameMode.Campaign: var campaignMatch = await _statsRepository.GetCampaignMatch(id); match = GetMatchResult(campaignMatch, gamerTag, matchEvents); break; case Enumeration.GameMode.Custom: var customMatch = await _statsRepository.GetCustomMatch(id); match = await GetMatchResult(customMatch, gamerTag, matchEvents); break; case Enumeration.GameMode.Warzone: var warzoneMatch = await _statsRepository.GetWarzoneMatch(id); match = await GetMatchResult(warzoneMatch, gamerTag, matchEvents); break; default: return(null); } if (match != null) { match.GameMode = gameMode; match.Id = id; } var matchResult = new MatchResultData(id.ToString(), match); if (_settings.CacheResults) { _db.InsertAsync(matchResult); await _db.CommitChanges(); } return(matchResult.Data); }