public async Task <IActionResult> PlayCard(Guid gameId, PlayCardRequest request) { if (!IsInGame(gameId)) { return(Unauthorized()); } var response = await _mediator.Send(new PlayCard { GameId = gameId, PlayerId = this.PlayerId, Type = request.CardType, Value = request.Value }); if (!response.IsSuccess) { return(StatusCode(StatusCodes.Status500InternalServerError, response.ErrorMessage)); } await _gameHub.Clients.Group(gameId.ToString()).CardPlayed(new PlayedCardMessage { Action = PlayedCardMessage.CardAction.Play, CardType = request.CardType, CardValue = request.Value, PlayerId = this.PlayerId }); return(Ok()); }
public HttpResponseMessage Play([ModelBinder(typeof(JsonNetModelBinder))] PlayCardRequest request) { var response = new PlayCardResponse() { Result = true }; return(new JsonNetResponseMessage(response)); }
public IHttpActionResult PlayCard3([FromBody] PlayCardRequest request) { string username = (string)HttpContext.Current.Session["username"]; Game currentGame = db.Games.FirstOrDefault(x => x.Id == request.GameId); // ako sam prvi igrac if (currentGame.Player1 == username) { if (request.CardNumber == 2) { currentGame.Player2Game3Points += 10; } currentGame.Player1Game3Played = true; db.SaveChanges(); if (currentGame.Player2Game3Played) { var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>(); context.Clients.All.opponentPlayed3(currentGame.Player2, currentGame.Player1Game3Points, currentGame.Player2Game3Points); PlayCardResponse response = new PlayCardResponse { OpponentPoints = currentGame.Player2Game3Points, MyPoints = currentGame.Player1Game3Points }; return(Ok(response)); } else { return(Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra...")); } } else // ako sam drugi igrac { if (request.CardNumber == 2) { currentGame.Player1Game3Points += 10; } currentGame.Player2Game3Played = true; db.SaveChanges(); if (currentGame.Player1Game3Played) { var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>(); context.Clients.All.opponentPlayed3(currentGame.Player1, currentGame.Player2Game3Points, currentGame.Player1Game3Points); PlayCardResponse response = new PlayCardResponse { OpponentPoints = currentGame.Player1Game3Points, MyPoints = currentGame.Player2Game3Points }; return(Ok(response)); } else { return(Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra...")); } } }
public async Task PlayCardAsync(PlayCardRequest playCardRequest) { var gamePlay = _gamePlays.FirstOrDefault(ga => ga.HubConnectionId == Context.ConnectionId); if (gamePlay == null) { return; } gamePlay.CardPlayed = playCardRequest.CardPlayed; await UpdateGame(gamePlay.Game.Id); }
public IRemoteObject Handle(AsyncUserToken token, IRemoteObject request) { PlayCardRequest playCardRequest = request as PlayCardRequest; PlayCardResponse response = new PlayCardResponse { Successfulness = true, Message = null }; try { GAME_MANAGER.PlayCard(token, playCardRequest.CardInGameId); } catch (LogicExecutionException e) { response.Successfulness = false; response.Message = e.Message; } return(response); }
public async Task <ActionResult <GameResponse> > PlayCard(PlayCardRequest playCardRequest) { var currentPlayer = await GetCurrentPlayer(); if (currentPlayer == null || playCardRequest == null) { return(BadRequest()); } var gameResponse = await _gameService.PlayCard(currentPlayer, playCardRequest.GameCardId); if (gameResponse == null) { return(BadRequest()); } await SendGameUpdateToClients(gameResponse.GameId, currentPlayer.Id); return(gameResponse); }
public IHttpActionResult PlayCard1([FromBody] PlayCardRequest request) { string username = (string)HttpContext.Current.Session["username"]; Game currentGame = db.Games.FirstOrDefault(x => x.Id == request.GameId); // ako sam prvi igrac if (currentGame.Player1 == username) { if (request.CardNumber == 1) { currentGame.Player1Game1Points += 5; } else { currentGame.Player2Game1Points += 10; } currentGame.Player1Game1Played = true; db.SaveChanges(); if (currentGame.Player2Game1Played) { var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>(); var myUser = db.Users.FirstOrDefault(x => x.Username == currentGame.Player1); var myFullName = myUser.FirstName + " " + myUser.LastName; var opponentUser = db.Users.FirstOrDefault(x => x.Username == currentGame.Player2); var opponentFullName = opponentUser.FirstName + " " + opponentUser.LastName; context.Clients.All.opponentPlayed1(currentGame.Player2, myFullName, currentGame.Player1Game1Points, currentGame.Player2Game1Points); PlayCardResponse response = new PlayCardResponse { OpponentName = opponentFullName, OpponentPoints = currentGame.Player2Game1Points, MyPoints = currentGame.Player1Game1Points }; return(Ok(response)); } else { return(Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra...")); } // ispod je slozenija verzija igre, koja nije ispravna ali bleji za svaki slucaj //if (currentGame.Player2Game1Points == null) //{ // // upisujemo u bazu odigranu kartu // currentGame.Player1Game1Points = request.CardNumber; // db.SaveChanges(); // return Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra..."); //} //else //{ // if (currentGame.Player2Game1Points > request.CardNumber) // { // currentGame.Player2Game1Points = 10; // currentGame.Player1Game1Points = 0; // db.SaveChanges(); // } else if (currentGame.Player2Game1Points == request.CardNumber) // { // currentGame.Player2Game1Points = 5; // currentGame.Player1Game1Points = 5; // db.SaveChanges(); // } else // { // currentGame.Player2Game1Points = 0; // currentGame.Player1Game1Points = 10; // db.SaveChanges(); // } // var context = GlobalHost.ConnectionManager.GetHubContext<Tasks>(); // context.Clients.All.opponentPlayed1(currentGame.Player2, currentGame.Player2Game1Points); // return Ok(true); //} } else // ako sam drugi igrac { if (request.CardNumber == 1) { currentGame.Player2Game1Points += 5; } else { currentGame.Player1Game1Points += 10; } currentGame.Player2Game1Played = true; db.SaveChanges(); if (currentGame.Player1Game1Played) { var context = GlobalHost.ConnectionManager.GetHubContext <Tasks>(); var myUser = db.Users.FirstOrDefault(x => x.Username == currentGame.Player2); var myFullName = myUser.FirstName + " " + myUser.LastName; var opponentUser = db.Users.FirstOrDefault(x => x.Username == currentGame.Player1); var opponentFullName = opponentUser.FirstName + " " + opponentUser.LastName; context.Clients.All.opponentPlayed1(currentGame.Player1, myFullName, currentGame.Player2Game1Points, currentGame.Player1Game1Points); PlayCardResponse response = new PlayCardResponse { OpponentName = opponentFullName, OpponentPoints = currentGame.Player1Game1Points, MyPoints = currentGame.Player2Game1Points }; return(Ok(response)); } else { return(Content(HttpStatusCode.BadRequest, "Cekanje na drugog igraca da odigra...")); } } }