public void ProcessResponse(EnableMachineThreadDataResponse threadData)
        {
            if (_requestCollection.Count <= 0)
            {
                return;
            }

            lock (_lockRes)
            {
                if (_requestCollection.ContainsKey(threadData.MessageID))
                {
                    EnableMachineThreadData Requestitem = _requestCollection[threadData.MessageID];

                    if (threadData.Ack)
                    {
                        LogManager.WriteLog("ProcessResponse_EnableMachine  |   ACK Updated for Installation No " + Requestitem.InstallationNo.ToString()
                                            , LogManager.enumLogLevel.Info);

                        GameCapResult oGameCapResult = oGameCappingBiz.UpdateGameCapDetails(Requestitem.GameCapID, SecurityHelper.CurrentUser.UserName);
                        LogManager.WriteLog("Game capping session closed Status [Installation No : " + Requestitem.InstallationNo.ToString() + "] : " + oGameCapResult.Message, LogManager.enumLogLevel.Info);
                    }
                    else
                    {
                        LogManager.WriteLog("ProcessResponse_EnableMachine  |   NACK received for Installation No " + Requestitem.InstallationNo.ToString()
                                            , LogManager.enumLogLevel.Info);
                    }

                    _requestCollection.Remove(threadData.MessageID);
                }
            }
        }
        private void ProcessRequest()
        {
            try
            {
                int Message_ID = 0;

                lock (_lockRes)
                {
                    _requestCollection.Clear();
                }

                while (true)
                {
                    //Exit thread when screen unloaded
                    if (mEvent.WaitOne(100))
                    {
                        break;
                    }

                    //Waits for new game cap release data from UI
                    PauseRelease.WaitOne();

                    //Skip release command if there is no session to uncap
                    if (_lstGameCapDetails.Count == 0)
                    {
                        continue;
                    }

                    List <GameCapDetails> lstTmp = _lstGameCapDetails.Where(item => item.Status == "Processing").ToList();

                    foreach (var item in lstTmp)
                    {
                        EnableMachineThreadData threadData = new EnableMachineThreadData()
                        {
                            InstallationNo = item.InstallationNo,
                            GameCapID      = item.GameCappingID
                        };

                        Message_ID = SendEnableMachine(threadData.InstallationNo);
                        LogManager.WriteLog("Enable machine is sent to Installation: " + threadData.InstallationNo.ToString()
                                            + ", MessageID: " + Message_ID.ToString()
                                            , LogManager.enumLogLevel.Info);
                        item.Status = "Send";

                        threadData.MessageID = Message_ID;
                        if (!_requestCollection.ContainsKey(Message_ID))
                        {
                            _requestCollection.Add(Message_ID, threadData);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
        }
        private void ProcessRequest()
        {
            try
            {
                int Message_ID = 0;

                lock (_lockRes)
                {
                    _requestCollection.Clear();
                }

                while (true)
                {
                    //Exit thread when screen unloaded
                    if (mEvent.WaitOne(100))
                        break;

                    //Waits for new game cap release data from UI
                    PauseRelease.WaitOne();

                    //Skip release command if there is no session to uncap
                    if (_lstGameCapDetails.Count == 0)
                        continue;

                    List<GameCapDetails> lstTmp = _lstGameCapDetails.Where(item => item.Status == "Processing").ToList();

                    foreach (var item in lstTmp)
                    {
                        EnableMachineThreadData threadData = new EnableMachineThreadData()
                        {
                            InstallationNo = item.InstallationNo,
                            GameCapID = item.GameCappingID
                        };

                        Message_ID = SendEnableMachine(threadData.InstallationNo);
                        LogManager.WriteLog("Enable machine is sent to Installation: " + threadData.InstallationNo.ToString()
                                            + ", MessageID: " + Message_ID.ToString()
                                            , LogManager.enumLogLevel.Info);
                        item.Status = "Send";

                        threadData.MessageID = Message_ID;
                        if (!_requestCollection.ContainsKey(Message_ID))
                            _requestCollection.Add(Message_ID, threadData);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
        }