public void EnterRoomTest() { //Arrange Player creator; var room = _gameCenter.CreateNewRoom(_level, new NoLimitHoldem(), out creator); EnterRoomRequest request = new EnterRoomRequest() { Room = room.GetHashCode(), UserName = _user.UserName, SecurityKey = _securityKey, }; //Act var act = _ctrl.EnterRoom(request); EnterRoomResult 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 content"); Assert.AreEqual("", actContent.ErrorMessage, "error message"); Assert.AreEqual(true, actContent.Success, "success"); Assert.AreNotEqual(default(int?), actContent.Player, "player not default value"); Assert.IsNotNull(actContent.Player, "player not null"); TestContext.WriteLine("\nContent:"); foreach (var property in actContent.GetType().GetProperties()) { TestContext.WriteLine("{0} : {1}", property.Name, property.GetValue(actContent)); } }
public static void UserEnterRoom(int user_id, int room_type, int room_id) { EnterRoomRequest request = new EnterRoomRequest { user_id = user_id, room_type = room_type, room_id = room_id, }; Message message = new Message(); message.PackBuffer(ServiceID.ROOM_ENTER_ROOM_SERVICE, JsonTools.SerializeToString(request)); NetworkMgr.Instance.Send(message); }
public HttpResponseMessage EnterRoom(EnterRoomRequest request) { var result = new EnterRoomResult(); try { result = service.EnterRoom(request); } catch (Exception e) { result.ErrorMessage = e.Message; result.Success = false; return(Request.CreateResponse(HttpStatusCode.InternalServerError, result)); } return(Request.CreateResponse(HttpStatusCode.OK, result)); }
public EnterRoomResult EnterRoom(EnterRoomRequest request) { var result = new EnterRoomResult(); try { var room = _cache.RefreshAndGet( Rooms, request.Room, new RoomNotFoundException(string.Format("Requested room ID {0} not found", request.Room)) ); var user = _cache.RefreshAndGet( Users, request.UserName, new UserNotFoundException(string.Format("User ID {0} not found", request.UserName)) ); UserManager.SecurityCheck(request.SecurityKey, user); result.Player = user.EnterRoom(room).GetHashCode(); result.RoomID = room.GetHashCode(); result.Name = room.Preferences.Name; result.BuyInCost = room.Preferences.BuyInCost; result.MinimumBet = room.Preferences.MinimumBet; result.Antes = room.Preferences.AntesValue; result.MinNumberOfPlayers = room.Preferences.MinNumberOfPlayers; result.MaxNumberOfPlayers = room.Preferences.MaxNumberOfPlayers; result.IsSpactatorsAllowed = room.Preferences.IsSpactatorsAllowed; if (room.Preferences is GamePreferencesDecorator) { result.Limit = ((GamePreferencesDecorator)room.Preferences).Limit; } } catch (PokerException e) { result.Success = false; result.ErrorMessage = e.Message; Logger.Error(e, this); } return(result); }
public IActionResult Post([FromBody] EnterRoomRequest request) { // 入室 var response = DiProvider.GetContainer().GetInstance <EnterRoomReceiver>().Receive(request); // 部屋の状態を更新 var stateReq = DiProvider.GetContainer().GetInstance <UpdateRoomStatusRequest>(); stateReq.RoomKey = request.RoomKey; stateReq.Attach(); var stateRes = DiProvider.GetContainer().GetInstance <UpdateRoomStatusReceiver>().Receive(stateReq); stateRes.Detach(); // 通知 this.NotifyEnterRoom(request.RoomKey, request.PlayerName); this.NotifyRoomContext(request.RoomKey); return(Ok(response)); }