Example #1
0
        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)
            });
        }