public HitMeResponse Put(HitMe request)
        {
            var game = Cache.Get <CardGame>(request.GameId);

            if (game == null)
            {
                throw HttpError.NotFound("Game not found");
            }
            if (game.PlayerOneId != request.PlayerId &&
                game.PlayerTwoId != request.PlayerId)
            {
                throw HttpError.NotFound("Player not found");
            }

            var player = game.PlayerOneId == request.PlayerId ? game.PlayerOne : game.PlayerTwo;

            player.HitMe(game.Deck);

            game.Events.Add(new CardGameEvent
            {
                ClientId = request.PlayerId,
                GameId   = request.GameId,
                Message  = "Player {0} hit".Fmt(player.DisplayName),
                Type     = "HIT"
            });

            Cache.Set(request.GameId, game, TimeSpan.FromHours(1));
            var result = new HitMeResponse();

            return(result);
        }
        public HitMeResponse Put(HitMe request)
        {
            var game = Cache.Get<CardGame>(request.GameId);
            if (game == null) throw HttpError.NotFound("Game not found");
            if (game.PlayerOneId != request.PlayerId &&
                game.PlayerTwoId != request.PlayerId)
                throw HttpError.NotFound("Player not found");

            var player = game.PlayerOneId == request.PlayerId ? game.PlayerOne : game.PlayerTwo;
            player.HitMe(game.Deck);

            game.Events.Add(new CardGameEvent
            {
                ClientId = request.PlayerId,
                GameId = request.GameId,
                Message = "Player {0} hit".Fmt(player.DisplayName),
                Type = "HIT"
            });

            Cache.Set(request.GameId, game, TimeSpan.FromHours(1));
            var result = new HitMeResponse();
            return result;
        }