/// <summary> /// Establece los valores del objeto giro a partir de un objeto de 472 /// </summary> /// <param name="giro">Giro con la información básica</param> /// <param name="original">Giro proveniente de Cash472</param> private void EstablecerValoresGiro(DataContract.Cash472.Giro giro, MultiPay472.RespuestaConsultaGiro original) { if (giro != null && original != null) { giro.CodigoTransaccion = original.CodigoTransaccion; giro.Id = original.OGiro.IdGiro; giro.TotalRecibido = original.OGiro.ValorRecibidoTotal; giro.TotalAEntregar = original.OGiro.Valor; giro.Flete = original.OGiro.Flete; giro.IncluyeFlete = original.OGiro.IncluyeFlete; giro.Fecha = Cash472.CashProvider.ObtenerFechaDesdeString(original.OGiro.FechaConstitucion); giro.Emisor = new Cliente(); giro.Receptor = new Cliente(); this.EstablecerValoresCliente(giro.Emisor, original.Originador, null); this.EstablecerValoresCliente(giro.Receptor, null, original.Destinatario); } }
/// <summary> /// Consulta de giros /// </summary> /// <param name="request">Objeto que contiene todos los datos de autenticacion del usuario e información de la consulta</param> /// <returns>Respuesta de la consulta</returns> public ConsultaResponse Consulta(ConsultaRequest request) { string methodName = string.Format("{0}", System.Reflection.MethodBase.GetCurrentMethod().Name); this.LogRequest(request); ConsultaResponse response = new ConsultaResponse(); string sessionId = this.GetSessionId(request, response, out this.errorMessage); if (this.errorMessage != ErrorMessagesMnemonics.None) { this.LogResponse(response); return(response); } if (!request.IsValidRequest()) { this.SetResponseErrorCode(response, ErrorMessagesMnemonics.InvalidRequiredFields); this.LogResponse(response); return(response); } MultiPay472.Service1SoapClient client = this.GetSoapClient(); string endpointName = "ConsultaGiros"; try { MultiPay472.ConsultaGiro peticion = new MultiPay472.ConsultaGiro(); peticion.NitRed = this.multipayNitRed; peticion.CodigoTerminal = this.multipayTerminal; peticion.CodigoTransaccion = this.GenerarCodigoTransaccion(sessionId); peticion.CodigoPuntoVenta = request.Pdv; peticion.TipoCliente = Cash472.CashProvider.ObtenerCodigoTipoCliente(request.TipoCliente); peticion.OIdentificacionCliente = new MultiPay472.IdentificacionCliente(); peticion.OIdentificacionCliente.TipoIdentificacion = Cash472.CashProvider.ObtenerCodigoTipoIdentificacion(request.TipoIdentificacion); peticion.OIdentificacionCliente.NumeroIdentificacion = request.NumeroIdentificacion; if (!string.IsNullOrEmpty(request.Pin)) { peticion.PIN = Multipay472TripleDes.Encrypt(this.multipayTripleDesKey, request.Pin); } this.ProviderLogger.InfoLow(() => TagValue.New() .MethodName(methodName) .Message("[" + sessionId + "] " + "Llamando servicio \"" + endpointName + "\" ...")); MultiPay472.RespuestaConsultaGiro[] resp = client.ConsultaGiros(peticion, this.multipayUsuario); MultiPay472.RespuestaConsultaGiro primero = resp != null && resp.Length > 0 ? resp[0] : null; this.ProviderLogger.InfoLow(() => TagValue.New() .MethodName(methodName) .Message("[" + sessionId + "] " + "Respuesta servicio \"" + endpointName + "\"") .Tag("Respuesta").Value(resp != null && primero != null ? resp[0].CodigoRespuesta : "NULL")); if (resp != null && primero != null && primero.CodigoRespuesta == CashProvider.CodigoRespuestaExitoso) { response.ResponseCode = 0; response.Giros = new List <Giro>(); foreach (MultiPay472.RespuestaConsultaGiro it in resp) { DataContract.Cash472.Giro giro = new DataContract.Cash472.Giro(); this.EstablecerValoresGiro(giro, it); response.Giros.Add(giro); } response.Quantity = response.Giros.Count; } else { if (resp == null || primero == null) { this.errorMessage = ErrorMessagesMnemonics.WebServiceDoesNotRespond; response.ResponseCode = (int)this.errorMessage; response.ResponseMessage = this.errorMessage.ToDescription(); } else { response.ResponseMessage = CashProvider.ObtenerMensajeCodigoRespuesta(primero.CodigoRespuesta); } } } catch (Exception ex) { this.ProviderLogger.ExceptionLow(() => TagValue.New() .MethodName(methodName) .Message("[" + sessionId + "] " + "Error llamando servicio \"" + endpointName + "\"") .Exception(ex)); } this.LogResponse(response); return(response); }