public async Task <ActionResult> GetGamertagFromPlayerId([FromRoute] string playerid) { // Call data store var player = await _store.GetPlayerDetailsByUserIdAsync(playerid); // Return result return(Ok(new { gamertag = player?.Gamertag })); }
public async Task <ActionResult> GetCurrentPlayer() { string userId = User.GetId(); // Call data store var player = await _store.GetPlayerDetailsByUserIdAsync(userId); if (player == null) { return(Ok(new PlayerGetResponseModel { Player = new PlayerGetResponseModel.PlayerEntry() })); } // Return result return(Ok(PlayerGetResponseModel.FromPlayer(player))); }
public async Task <ActionResult> 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(BadRequest()); } var playerEntity = await _store.GetPlayerDetailsByUserIdAsync(userId); if (playerEntity == null) { 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(BadRequest()); } playerEntity.Country = player.Country; playerEntity.CustomTag = player.CustomTag; } // Update player await _store.SavePlayerAsync(playerEntity); // Return result return(NoContent()); }