Пример #1
0
        /// <summary>Sends a request to the EFT-Client</summary>
        /// <param name="request">The <see cref="TerminalBaseRequest"/> to send</param>
        /// <param name="member">Used for internal logging. Ignore</param>
        /// <returns>FALSE if an error occurs</returns>
        public bool DoRequest(TerminalBaseRequest request, [CallerMemberName] string member = "")
        {
            SetCurrentRequest(request);
            logger.Info($"Request via {member}");

            // Save the current synchronization context so we can use it to send events
            syncContext = System.Threading.SynchronizationContext.Current;

            if (requestInProgess)
            {
                logger.Info("Ignored, request already in progress");
                return(false);
            }

            if (!IsConnected)
            {
                logger.Info($"Not connected in {member} request, trying to connect now...");
                if (!Connect())
                {
                    logger.Error("Connect failed");
                    return(false);
                }
            }

            var r = SendIPClientRequest(request);

            requestInProgess = r;
            return(r);
        }
Пример #2
0
        private void SetCurrentRequest(TerminalBaseRequest request)
        {
            // Always set _currentRequest to the last request we send
            currentRequest = request;

            if (request.GetIsStartOfTransactionRequest())
            {
                _currentStartTxnRequest = request;
            }
        }
Пример #3
0
        bool SendIPClientRequest(TerminalBaseRequest eftRequest)
        {
            // Store current request.
            this.currentRequest = eftRequest;

            // Build request
            var requestString = "";

            try
            {
                requestString = _parser.EFTRequestToString(eftRequest);
            }
            catch (Exception e)
            {
                //Log(LogLevel.Error, tr => tr.Set($"An error occured parsing the request", e));
                throw;
            }

            //Log(LogLevel.Debug, tr => tr.Set($"Tx {requestString}"));

            // Send the request string to the IP client.
            return(socket.Send(requestString));
        }