public async Task <AuthorizePlayerResponse> PostAsync(AuthorizePlayerRequest request) { if (string.IsNullOrEmpty(request.ipaddress)) { throw new ArgumentException("IpAddress is missing"); } Player player; if (string.IsNullOrEmpty(request.userid)) { player = await _repository.Players.SingleOrDefaultAsync(x => x.Name == request.username); } else { var playerId = Guid.Parse(request.userid); player = await _repository.Players.SingleOrDefaultAsync(x => x.Id == playerId); } if (player == null) { var brandId = GetBrandId(ActionContext); player = _playerCommands.AddPlayerFromRequest(request, brandId); } return(new AuthorizePlayerResponse { authtoken = _tokenProvider.Encrypt(player.Id) }); }