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());
            }
        }
示例#4
0
 public async Task <Player> ChangeUserStatus(Player player, PlayerStatusRequest playerStatus)
 {
     player.online = playerStatus.status;
     return(await _repository.Update(player));
 }