public JoinNextHandResult JoinNextHand(JoinNextHandRequest request) { var result = new JoinNextHandResult(); try { var player = _cache.RefreshAndGet( Players, request.Player, new PlayerNotFoundException(string.Format("Cannot find player id: {0}, please exit and re-enter the room.", request.Player)) ); var user = _cache.RefreshAndGet( Users, request.UserName, new UserNotFoundException(string.Format("Cannot find user name: {0}, please login to the server again.", request.UserName)) ); UserManager.SecurityCheck(request.SecurityKey, user); user.JoinNextHand(player, request.SeatIndex, request.BuyIn); result.UserBank = user.UserBank.Money; result.Wallet = player.Wallet.AmountOfMoney; result.Success = true; } catch (PokerException e) { result.Success = false; result.ErrorMessage = e.Message; Logger.Error(e, this); } return(result); }
public void JoinNextHandTest() { //Arrange var room = default(Room); var player = default(Player); room = _user.CreateNewRoom(_level, _config, out player); JoinNextHandRequest request = new JoinNextHandRequest() { BuyIn = room.Preferences.BuyInCost, Player = player.GetHashCode(), SeatIndex = 1, UserName = _user.UserName, SecurityKey = _securityKey, }; //Act var act = _ctrl.JoinNextHand(request); JoinNextHandResult actContent; var hasContent = act.TryGetContentValue(out actContent); //Assert TestContext.WriteLine("error message: '{0}'", (actContent != null && actContent.ErrorMessage != "") ? actContent.ErrorMessage : "null"); Assert.AreEqual(HttpStatusCode.OK, act.StatusCode, "status code"); Assert.IsTrue(hasContent, "has contact"); Assert.AreEqual("", actContent.ErrorMessage, "error message"); Assert.AreEqual(true, actContent.Success, "success"); }
public HttpResponseMessage JoinNextHand(JoinNextHandRequest request) { var result = new JoinNextHandResult(); try { result = service.JoinNextHand(request); } catch (Exception e) { result.ErrorMessage = e.Message; result.Success = false; return(Request.CreateResponse(HttpStatusCode.InternalServerError, result)); } return(Request.CreateResponse(HttpStatusCode.OK, result)); }