Пример #1
0
        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);
        }
Пример #2
0
        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));
        }