Beispiel #1
0
        public IActionResult MakeMove(Guid gameId, string playerId, MakeMoveRequest request)
        {
            var move_number = _service.MakeMove(gameId, playerId, request.column);
            var response    = new MakeMoveResponse($"{gameId}/moves/{move_number}");

            return(Ok(response));
        }
Beispiel #2
0
        public async Task <MakeMoveResponse> MakeMove(Guid mazeId, Direction direction)
        {
            var request = new MakeMoveRequest()
            {
                Direction = direction
            };

            using (var client = GetClient())
            {
                var content  = new StringContent(JObject.FromObject(request).ToString(), Encoding.UTF8, "application/json");
                var response = await client.PostAsync($"pony-challenge/maze/{mazeId}", content);

                var responseDataString = await response.Content.ReadAsStringAsync();

                if (response.IsSuccessStatusCode)
                {
                    try
                    {
                        var jObj = JObject.Parse(responseDataString);
                        return(jObj.ToObject <MakeMoveResponse>());
                    }
                    catch
                    {
                        throw new Exception("MakeMove: Received invalid json data");
                    }
                }
                else
                {
                    throw new PonyClientException(responseDataString);
                }
            }
        }
Beispiel #3
0
        public async Task <IActionResult> MakeMove(string gameId, [FromBody] MakeMoveRequest request, CancellationToken cancellationToken)
        {
            var userId  = User.GetUserId();
            var command = MakeMoveMapper.ToCommand(gameId, userId, request);

            await _makeMoveCommandHandler.HandleAsync(command, cancellationToken).ConfigureAwait(false);

            return(Ok());
        }
Beispiel #4
0
        public async Task <IActionResult> MakeMove(MakeMoveRequest makeMoveRequest)
        {
            var game = _directChessRepository.GetGameByPlayerKey(makeMoveRequest.PlayerKey);

            await _directChessRepository.MakeMove(
                game.GameId,
                makeMoveRequest.PlayerKey,
                new Field(makeMoveRequest.FromField),
                new Field(makeMoveRequest.ToField));

            return(Ok());
        }
        private async Task <MakeMoveModel> MakeMoveAsync(Guid mazeId, string direction)
        {
            var makeMoveRequest = new MakeMoveRequest
            {
                Direction = direction
            };

            var makeMoveResponse = await ApiClient.MakeMoveAsync(mazeId, makeMoveRequest);

            ThrowIfNotSuccess(makeMoveResponse);

            return(makeMoveResponse.Value);
        }
Beispiel #6
0
        public async Task MakeMove(MakeMoveRequest request)
        {
            var result = await _mediator.Send(request);

            string groupName = request.GameId.ToString();
            await Clients.Group(groupName).SendAsync("BoardRefreshed", result.Board);

            await Clients.Group(groupName).SendAsync("TurnRefreshed", result.CurrentTurn);

            if (result.Winner != null)
            {
                await Clients.Group(groupName).SendAsync("GameOver", result.Winner);
            }
        }
Beispiel #7
0
        public static MakeMoveCommand ToCommand(string gameId, string playerId, MakeMoveRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            return(new MakeMoveCommand
            {
                GameId = gameId,
                PlayerId = playerId,
                Row = request.Row,
                Column = request.Column,
            });
        }
 public virtual Tuple <ClientSettings, GameState <ClientState, Move> > PostToClientSettingsAndState([FromBody] MakeMoveRequest <Settings, State, Move> req)
 {
     return(GetFiatGame().ToClientSettingsAndState(req.player, req.settings, req.state));
 }
 public virtual bool PostIsMoveValid([FromBody] MakeMoveRequest <Settings, State, Move> req)
 {
     return(GetFiatGame().IsMoveValid(req.player, req.settings, req.state, req.move));
 }
 public virtual GameState <State, Move> PostMakeMove([FromBody] MakeMoveRequest <Settings, State, Move> req)
 {
     return(GetFiatGame().MakeMove(req.player, req.settings, req.state, req.move));
 }
Beispiel #11
0
        public async Task <ApiResponse <MakeMoveModel> > MakeMoveAsync(Guid mazeId, MakeMoveRequest makeMoveRequest)
        {
            var uri = string.Format(MakeMoveEndpoint, mazeId);

            return(await PostAsync <MakeMoveModel, MakeMoveRequest>(uri, makeMoveRequest));
        }
Beispiel #12
0
        public override GameState <State, Move> PostMakeMove(MakeMoveRequest <Settings, State, Move> req)
        {
            var a = base.PostMakeMove(req);

            return(a);
        }