public async Task <ActionResult> GetPlayer(string gamertag) { // Call data store var player = await _store.GetPlayerDetailsByGamertagAsync(gamertag); if (player == null) { return(NotFound()); } // Return result return(Ok(PlayerGetResponseModel.FromPlayer(player))); }
public async Task <IActionResult> PutCurrentPlayer([FromBody] PlayerPutRequestModel player) { string userId = User.GetId(); // prevent modifying gamertag var existingPlayerForGamertag = await _store.GetPlayerDetailsByGamertagAsync(player.Gamertag); if (existingPlayerForGamertag != null && existingPlayerForGamertag.UserId != userId) { // Can't use a gamertag from another user return(this.ValidationFailed(new ErrorDetail("gamertag", "Gamertag already in use"))); } bool newPlayer = false; var playerEntity = await _store.GetPlayerDetailsByUserIdAsync(userId); if (playerEntity == null) { newPlayer = true; playerEntity = new Player { UserId = userId, Gamertag = player.Gamertag, Country = player.Country, CustomTag = player.CustomTag }; } else { if (playerEntity.Gamertag != player.Gamertag) { // can't change gamertag return(this.ValidationFailed(new ErrorDetail("gamertag", "Can't change gamertag"))); } playerEntity.Country = player.Country; playerEntity.CustomTag = player.CustomTag; } // Update player await _store.SavePlayerAsync(playerEntity); // is this a new player registration? if (newPlayer) { _appMonitor.LogEvent("Register"); } // Return result return(NoContent()); }
public async Task <ActionResult> TestGamerTag([FromRoute] string gamertag) { var player = await _store.GetPlayerDetailsByGamertagAsync(gamertag); return(Ok( new TestGamerTagResponseModel { Available = player == null })); }
public async Task <ActionResult> TestGamerTag([FromRoute] string gamertag) { var player = await _store.GetPlayerDetailsByGamertagAsync(gamertag); if (player == null) { return(NotFound()); } return(Ok()); }
public async Task <ActionResult> GetCurrentPlayer() { string gamertag = User.GetGamerTag(); if (string.IsNullOrWhiteSpace(gamertag)) { return(NotFound()); } // Call data store var player = await _store.GetPlayerDetailsByGamertagAsync(gamertag); if (player == null) { return(Ok(new PlayerGetResponseModel())); } // Return result return(Ok(PlayerGetResponseModel.FromPlayer(player))); }