public LeaveRoomResult LeaveRoom(LeaveRoomRequest request) { var result = new LeaveRoomResult(); try { var user = _cache.RefreshAndGet( Users, request.UserName, new UserNotFoundException(string.Format("cannot find user name: {0}, please login again.", request.UserName)) ); UserManager.SecurityCheck(request.SecurityKey, user); var player = _cache.RefreshAndGet( Players, request.Player, new PlayerNotFoundException(string.Format("player id: {0} not found, please re-enter the room.", request.Player)) ); user.ExitRoom(player); result.Success = true; result.UserStatistics = user.UserStatistics; // update cache on removal Players.Remove(player.GetHashCode()); } catch (PokerException e) { result.Success = false; result.ErrorMessage = e.Message; Logger.Error(e, this); } return(result); }
public HttpResponseMessage LeaveRoom(LeaveRoomRequest request) { var result = new LeaveRoomResult(); try { result = service.LeaveRoom(request); } catch (Exception e) { result.ErrorMessage = e.Message; result.Success = false; return(Request.CreateResponse(HttpStatusCode.InternalServerError, result)); } return(Request.CreateResponse(HttpStatusCode.OK, result)); }