Example #1
0
        public static ProcessingResult ProcessingTest(string dataSource, string processingServiceName, string terminalId, string terminalPassword, string requestId, string cardNum)
        {
            ProcessingResult ProcessingResult = new ProcessingResult();
            Stopwatch        ResponsePing     = new Stopwatch();

            if (string.IsNullOrEmpty(cardNum))
            {
                cardNum = AdditionalFunc.DataBaseSQL(dataSource, "select card_num as data from cards where rownum = 1 and is_delete = 0 and is_locked = 0", true);

                if (string.IsNullOrEmpty(cardNum))
                {
                    ProcessingResult.Error = Variables.requestStateError;
                    return(ProcessingResult);
                }
            }

            ProcessingResult.cardNum = cardNum;

            if (string.IsNullOrEmpty(requestId))
            {
                string authRes = BposRequests.AuthRequest(processingServiceName, terminalId, terminalPassword);

                if (string.Equals(authRes, Variables.requestStateError))
                {
                    ProcessingResult.Error = Variables.requestStateError;
                    return(ProcessingResult);
                }

                requestId = BposRequests.RRN(cardNum, processingServiceName, terminalId);

                if (string.Equals(requestId, Variables.requestStateError))
                {
                    ProcessingResult.Error = Variables.requestStateError;
                    return(ProcessingResult);
                }
            }

            ProcessingResult.requestId = BposRequests.NextRRN(requestId);

            ResponsePing.Start();
            string res = BposRequests.BalanceRequest(cardNum, processingServiceName, terminalId, ProcessingResult.requestId);

            ResponsePing.Stop();

            //string clearDB = AdditionalFunc.DataBaseSQL(dataSource, "delete from requests where employee_code='Pinger' and terminal_id = (select terminal_id from terminals where code='100')", false);

            if (String.Equals(res, Variables.requestStateError))
            {
                ProcessingResult.Error = Variables.requestStateError;
            }
            else
            {
                ProcessingResult.Ping = Math.Round(Convert.ToDecimal(ResponsePing.ElapsedMilliseconds) / 1000, 3).ToString();
            }

            return(ProcessingResult);
        }
Example #2
0
        public static Resources GetResourseInfo(Applications Applications)
        {
            string           sucReqElectCard  = String.Empty;
            string           pingResponse     = String.Empty;
            ProcessingResult ProcessingResult = new ProcessingResult();
            Stopwatch        ResponsePing     = new Stopwatch();

            ResponsePing.Start();
            string[] version = HTTPRequests.GetVersion(Applications.Address);
            ResponsePing.Stop();

            if (!String.Equals(version[0], Variables.offline))
            {
                pingResponse = Math.Round(Convert.ToDecimal(ResponsePing.ElapsedMilliseconds) / 1000, 3).ToString();
            }

            switch (Applications.AppType)
            {
            case Variables.processingType:
                ProcessingResult = Processing.ProcessingTest(Applications.DataSource, Applications.Address, Applications.TerminalId, Applications.TerminalPassword, Applications.requestId, Applications.cardNum);
                pingResponse     = ProcessingResult.Ping;

                if (String.Equals(ProcessingResult.Error, Variables.requestStateError))
                {
                    pingResponse = Variables.error;
                    version[0]   = Variables.offline;
                }

                sucReqElectCard = AdditionalFunc.DataBaseSQL(Applications.DataSource, "select count(*) as data from requests "
                                                             + "where trunc(ins_date) = trunc(sysdate) "
                                                             + "and(request_type = 'PAYMENT_AND_CONFIRM' or request_type = 'DEPOST' or "
                                                             + "request_type = 'PAYMENT' or request_type = 'CANCEL' or "
                                                             + "request_type = 'PAYMENT_CONFIRM') "
                                                             + "and (request_state = 'PROCESSED' or request_state = 'READY' or request_state = 'SUCCESS')", true);
                break;

            case Variables.mobileType:
                sucReqElectCard = AdditionalFunc.DataBaseSQL(Applications.DataSource, "select count(*) as data from card_emission_units where state = 'IN_STOCK'", true);
                break;

            default:
                break;
            }

            return(new Resources
            {
                address = "Адрес ресурса: " + Applications.Address,
                name = Applications.Name,
                status = version[0],
                version = version[1],
                sucReqElectCard = sucReqElectCard,
                responsePing = pingResponse,
                requestId = ProcessingResult.requestId,
                cardNum = ProcessingResult.cardNum
            });
        }