Exemplo n.º 1
0
        public override IMovilwayApiResponse PerformUtibaOperation(IMovilwayApiRequest requestObject, API.Utiba.UMarketSCClient utibaClientProxy, string sessionID)
        {
            GetBalanceRequestBody request = requestObject as GetBalanceRequestBody;

            logger.InfoLow("[UTI] " + base.LOG_PREFIX + "[GetBalanceProvider] [SEND-DATA] balanceRequest {sessionid=" + sessionID + ",device_type=" + request.DeviceType + "}");

            balanceResponse utibaBalanceResponse = utibaClientProxy.balance(new balance()
            {
                balanceRequest = new balanceRequestType()
                {
                    sessionid   = sessionID,
                    device_type = request.DeviceType
                }
            });

            StringBuilder sb = new StringBuilder("balances={");

            foreach (var pair in utibaBalanceResponse.balanceReturn.balances)
            {
                sb.Append("keyValuePair={key=" + pair.key + ",value=" + pair.value + "},");
            }
            sb.Remove(sb.Length - 1, 1);
            sb.Append("}");

            logger.InfoLow("[UTI] " + base.LOG_PREFIX + "[GetBalanceProvider] [RECV-DATA] balanceResponse {transid=" + utibaBalanceResponse.balanceReturn.transid + ",result=" + utibaBalanceResponse.balanceReturn.result +
                           ",result_namespace=" + utibaBalanceResponse.balanceReturn.result_namespace + ",result_message=" + utibaBalanceResponse.balanceReturn.result_message +
                           ",avail_1=" + utibaBalanceResponse.balanceReturn.avail_1 + ",avail_2=" + utibaBalanceResponse.balanceReturn.avail_2 + ",avail_3=" + utibaBalanceResponse.balanceReturn.avail_3 +
                           ",avail_5=" + utibaBalanceResponse.balanceReturn.avail_5 + ",current_1=" + utibaBalanceResponse.balanceReturn.current_1 + ",current_2=" + utibaBalanceResponse.balanceReturn.current_2 +
                           ",current_3=" + utibaBalanceResponse.balanceReturn.current_3 + ",current_5=" + utibaBalanceResponse.balanceReturn.current_5 + ",pending_1=" + utibaBalanceResponse.balanceReturn.pending_1 +
                           ",pending_2=" + utibaBalanceResponse.balanceReturn.pending_2 + ",pending_3=" + utibaBalanceResponse.balanceReturn.pending_3 + ",pending_5=" + utibaBalanceResponse.balanceReturn.pending_5 +
                           "," + sb.ToString() + "}");


            GetBalanceResponseBody response = new GetBalanceResponseBody()
            {
                ResponseCode    = Utils.BuildResponseCode(utibaBalanceResponse.balanceReturn.result, utibaBalanceResponse.balanceReturn.result_namespace),
                ResponseMessage = utibaBalanceResponse.balanceReturn.result_message,
                TransactionID   = utibaBalanceResponse.balanceReturn.transid,
                WalletBalance   = utibaBalanceResponse.balanceReturn.avail_1,
                StockBalance    = utibaBalanceResponse.balanceReturn.avail_2,
                PointsBalance   = utibaBalanceResponse.balanceReturn.avail_3,
                DebtBalance     = utibaBalanceResponse.balanceReturn.avail_5
            };

            return(response);
        }
Exemplo n.º 2
0
        public override IMovilwayApiResponse PerformKinacuOperation(IMovilwayApiRequest requestObject, SaleInterface kinacuWS, string sessionID)
        {
            if (sessionID.Equals("0"))
            {
                return new GetBalanceResponseBody()
                       {
                           ResponseCode    = 90,
                           ResponseMessage = "error session",
                           TransactionID   = 0
                       }
            }
            ;

            GetBalanceRequestBody request = requestObject as GetBalanceRequestBody;
            string message;

            logger.InfoLow("[KIN] " + base.LOG_PREFIX + "[GetBalanceProvider] [SEND-DATA] GetAccountBalanceParameters {UserId=" + sessionID + "}");

            long balance = kinacuWS.GetAccountBalance(int.Parse(sessionID), out message);

            logger.InfoLow("[KIN] " + base.LOG_PREFIX + "[GetBalanceProvider] [RECV-DATA] GetAccountBalanceResult {response=" + balance + ",message=" + message + "}");

            GetBalanceResponseBody response = new GetBalanceResponseBody()
            {
                ResponseCode    = balance == -1 ? 99 : 0,
                ResponseMessage = message == "" ? (balance / 100m).ToString() : message,
                TransactionID   = new Random().Next(100000, 999999),
                WalletBalance   = 0,
                StockBalance    = balance / 100m,
                PointsBalance   = 0,
                DebtBalance     = 0
            };

            if (request.ExtendedValues ?? false)
            {
                response.CheckingAccountBalance = Utils.GetAgentCheckingAccountBalance(request.AuthenticationData.Username);
            }

            return(response);
        }
    }