internal ServerClient(GameServiceConfig GameServiceConfig)
 {
     Password               = GameServiceConfig.ServerCredential.Password;
     UserName               = GameServiceConfig.ServerCredential.UserName;
     URL                    = GameServiceConfig.MasterServerURL;
     HttpClient             = new HttpClient();
     HttpClient.BaseAddress = new Uri(URL);
     HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 }
        };                                                                                              //Our key
        //readonly static byte[] AuthenticationKeys = new byte[6] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; //Blank key

        public ArcadeGameStartAndStopService()
        {
            InitializeComponent();
            MainConfig = JSONServiceConfig.GetJSONServiceConfig();
            Logger     = new Logger();

            SlaveLocationModel slaveLocationModel = new SlaveLocationModel();

            //GameServicePipeServer.Service = this;

            TheServerClient = new ServerClient(MainConfig);

            GameServicePipeServer ServerController = new GameServicePipeServer();

            ServerController.PlayGameEvent += StartGameRequested;

            GameMenu = new GameMenu(ServerController);



            #region depreciated
            //ACR122UManager.GlobalCardCheck = (e) =>
            //{
            //    return AcceptedATRS.Any(x =>
            //    {
            //        bool CeckSuccess = false;
            //        if (e.ATR.Length == x.Length)
            //        {
            //            CeckSuccess = true;
            //            for (int i = 0; i < e.ATR.Length; i++)
            //            {
            //                if (e.ATR[i] != x[i])
            //                {
            //                    CeckSuccess = false;
            //                    break;
            //                }
            //            }
            //        }
            //        return CeckSuccess;
            //    });
            //};

            //if (MainConfig.DefualtGameGUID == null || !GameStarter.Config.Games.Any(x => x.GUID == MainConfig.DefualtGameGUID))
            //{
            //    Logger.WriteLog("Game GUID doesnt exist. Will attempt revert to first game in list.", LoggerWarringLevel.Warring);
            //    MainConfig.DefualtGameGUID = GameStarter.Config.Games.FirstOrDefault(x=>true)?.GUID;
            //    if (MainConfig.DefualtGameGUID == null)
            //    {
            //        Logger.WriteLog("Game list seems to be empty. Please populate game list before starting service. Service will now Stop.", LoggerWarringLevel.Danger);
            //        MessageBox.Show("Game list seems to be empty.\nPlease populate game list before starting service.\nService will now Stop.");
            //        throw new Exception("Game list seems to be empty.\nPlease populate game list before starting service.\nService will now Stop.");
            //    }
            //}

            //GameGUID = MainConfig.DefualtGameGUID;

            #endregion

            #region Kernel32EventTieing
            CloseEventHandle += new CloseEvent(CloseEventAction);
            SetConsoleCtrlHandler(CloseEventHandle);
            #endregion
        }