public async Task <IActionResult> SetGamertagForPlayerId( [FromRoute] string playerid, [FromBody] SetGamertagRequestModel model) { var player = await _store.GetPlayerDetailsByUserIdAsync(playerid); if (player == null) { player = new Player { UserId = playerid }; } if (!string.IsNullOrEmpty(player.Gamertag)) { _logger.LogInformation("Player already has gamertag (cannot update) in SetGamertagForPlayerId"); _appMonitor.LogEvent("RegisterFailed", properties: new Dictionary <string, string> { { "Reason", "UserAlreadyHasGamertag" }, { "Source", "Interactive" } }); return(this.ValidationFailed(new ErrorDetail("gamertag", "Cannot update gamertag"))); } player.Gamertag = model.Gamertag; await _store.SavePlayerAsync(player); _appMonitor.LogEvent("RegisterSucceeded", properties: new Dictionary <string, string> { { "Reason", "UserAlreadyHasGamertag" }, { "Source", "Interactive" } }); return(Ok()); }
public async Task <ActionResult> SetGamertagForPlayerId( [FromRoute] string playerid, [FromBody] SetGamertagRequestModel model) { if (!ModelState.IsValid) { _logger.LogInformation("Invalid model state in SetGamertagForPlayerId"); return(BadRequest()); } var player = await _store.GetPlayerDetailsByUserIdAsync(playerid); if (player == null) { player = new Player { UserId = playerid }; } if (!string.IsNullOrEmpty(player.Gamertag)) { _logger.LogInformation("Player already has gamertag (cannot update) in SetGamertagForPlayerId"); return(BadRequest()); } player.Gamertag = model.Gamertag; await _store.SavePlayerAsync(player); return(Ok()); }
public async Task <IActionResult> SetGamertagForPlayerId( [FromRoute] string playerid, [FromBody] SetGamertagRequestModel model) { var player = await _store.GetPlayerDetailsByUserIdAsync(playerid); if (player == null) { player = new Player { UserId = playerid }; } if (!string.IsNullOrEmpty(player.Gamertag)) { _logger.LogInformation("Player already has gamertag (cannot update) in SetGamertagForPlayerId"); return(this.ValidationFailed(new ErrorDetail("gamertag", "Cannot update gamertag"))); } player.Gamertag = model.Gamertag; await _store.SavePlayerAsync(player); return(Ok()); }