private void HandleRegisterForUpdates(TcpRequest request)
        {
            _logger.LogMessage("Handling register for update request");

            var registerForUpdatesRequest = JsonConvert.DeserializeObject <RegisterForUpdatesRequest>(request.Body);

            _broadcastService.AddPort(registerForUpdatesRequest.Port);

            SendAllStats();

            var cardGroupInfoList = new List <CardGroupInfo>();
            var buttonInfoList    = new List <ButtonInfo>();

            foreach (var cardGroup in _appData.Game.AllCardGroups)
            {
                cardGroupInfoList.Add(new CardGroupInfo {
                    CardGroupId      = cardGroup.Id,
                    Name             = cardGroup.Name,
                    IsImageAvailable = cardGroup.ButtonImageAsBytes != null,
                    ImageId          = cardGroup.Name,
                    Zones            = (from zone in cardGroup.CardZones select zone.Name).ToList()
                });
                buttonInfoList.AddRange(cardGroup.GetButtonInfo());
            }

            SendRegisterForUpdatesResponse(request.Socket, cardGroupInfoList, buttonInfoList);
        }