public async Task <ActionResult> UpdateStatus([FromBody] PlayerStatusRequest playerStatus) { try{ Player player = (Player)HttpContext.Items["SessionPlayer"]; await _service.ChangeUserStatus(player, playerStatus); return(Ok()); }catch (Exception e) { this._logger.LogError(e, e.Message); return(StatusCode(500)); } }
public async Task PutValidPlayerStatusReturnsOk() { var request = new PlayerStatusRequest() { StatusId = PlayerStatus.Injured.Id }; var jsonContent = new StringContent(JsonSerializer.Serialize(request), Encoding.UTF8, "application/json"); var result = await _client.PutAsync("/api/players/1/status", jsonContent); Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK)); }
public async Task <ActionResult <List <string> > > DeletePlayerStatus([FromRoute] int playerId, [FromBody] PlayerStatusRequest request, CancellationToken cancellationToken) { var player = await _playersRepository.GetByIdWithStatusAsync(playerId); if (player != null) { try { player.RemoveStatus(Enumeration.GetById <PlayerStatus>(request.StatusId)); } catch (PlayerStatusNotPresentException) { return(BadRequest("Player Status not found on player")); } catch (Exception) { return(BadRequest($"Invalid Player Status {request.StatusId}")); } await _playersRepository.UpdateAsync(player); return(Ok(_mapper.Map <List <string> >(player.Statuses))); } else { return(NotFound()); } }
public async Task <Player> ChangeUserStatus(Player player, PlayerStatusRequest playerStatus) { player.online = playerStatus.status; return(await _repository.Update(player)); }