private ProxyTiempoAire.TResponse CheckTransaction(string requestId) { ProxyTiempoAire.TResponse tResponse = null; int cont = 0; bool superamosLosIntentos = false; while (cont <= this.credenciales.NumeroIntentos) { try { tResponse = transact.CheckTransaction(requestId, this.credenciales.UserName); } catch (Exception) { } if (tResponse.rcode != 2) { cont = this.credenciales.NumeroIntentos; } else { System.Threading.Thread.Sleep(5000); } cont++; if (cont >= this.credenciales.NumeroIntentos) { superamosLosIntentos = true; } } if (superamosLosIntentos) { return(null); } return(tResponse); }
/// <summary> /// Metodo para agregar tiempo aire /// </summary> /// <param name="tiempoAireRequest">Petición de Tiempo Aire</param> /// <param name="sku">SKU</param> /// <param name="folio">Folio de la Venta</param> /// <returns></returns> public ResponseBussiness <OperationResponse> AddTiempoAire(TiempoAireRequest tiempoAireRequest, int sku, string folio) { return(tryCatch.SafeExecutor(() => { OperationResponse operation = new OperationResponse(); ProxyTiempoAire.TResponse tResponse = new ProxyTiempoAire.TResponse(); string requestId = string.Empty; requestId = GetRequestId(0); if (requestId != "") { tResponse = GetDto(requestId, tiempoAireRequest.SkuCode, tiempoAireRequest.Telefono, tiempoAireRequest.Monto); string result = ""; if (tResponse != null) { if (tResponse.rcode < 3) { result = this.Doa(requestId, tResponse.op_authorization); } else { result = tResponse.rcode_description; } } else { result = "Transacción Fallida por timeout"; } operation.CodeDescription = result; } else { operation.CodeDescription = "Error del Web Service, contactar a Administrador del Sistema"; } if (operation.CodeDescription.ToUpper() == "<DoAResponse>OK</DoAResponse>".ToUpper()) { repository.RegistrarAutorizacionPagoTiempoAire(tiempoAireRequest.SkuCode, sku, folio, tResponse.op_authorization); operation.CodeNumber = "1"; operation.CodeDescription = requestId; } else { operation.CodeNumber = "0"; } return operation; })); }
private ProxyTiempoAire.TResponse GetDto(string requestId, string skuCode, string oppAcount, float monto) { ProxyTiempoAire.TResponse tResponse = null; try { tResponse = transact.DoT(requestId, this.credenciales.UserName, skuCode, oppAcount, monto, null); if (tResponse.rcode == 2) { tResponse = this.CheckTransaction(requestId); } } catch (Exception) { return(this.CheckTransaction(requestId)); } return(tResponse); }