RespuestaSincrono IServicioSunatDocumentos.EnviarDocumento(DocumentoSunat request) { var dataOrigen = Convert.FromBase64String(request.TramaXml); var response = new RespuestaSincrono(); try { _proxyDocumentos.Open(); var resultado = _proxyDocumentos.sendBill(request.NombreArchivo, dataOrigen); _proxyDocumentos.Close(); response.ConstanciaDeRecepcion = Convert.ToBase64String(resultado); response.Exito = true; } catch (FaultException ex) { response.MensajeError = string.Concat(ex.Code.Name, ex.Message); } catch (Exception ex) { var msg = string.Concat(ex.InnerException?.Message, ex.Message); if (msg.Contains(Formatos.FaultCode)) { var posicion = msg.IndexOf(Formatos.FaultCode, StringComparison.Ordinal); var codigoError = msg.Substring(posicion + Formatos.FaultCode.Length, 4); msg = $"El Código de Error es {codigoError}"; } response.MensajeError = msg; } return(response); }
public RespuestaSincrono ConsultarTicket(string numeroTicket) { var response = new RespuestaSincrono(); try { _proxyDocumentos.Open(); var resultado = _proxyDocumentos.getStatus(numeroTicket); _proxyDocumentos.Close(); var estado = (resultado.statusCode != "98"); response.ConstanciaDeRecepcion = estado ? Convert.ToBase64String(resultado.content) : "Aun en proceso"; response.Exito = true; } catch (FaultException ex) { response.MensajeError = string.Concat(ex.Code.Name, ex.Message); } catch (Exception ex) { var msg = ex.InnerException != null?string.Concat(ex.InnerException.Message, ex.Message) : ex.Message; if (msg.Contains(Formatos.FaultCode)) { var posicion = msg.IndexOf(Formatos.FaultCode, StringComparison.Ordinal); var codigoError = msg.Substring(posicion + Formatos.FaultCode.Length, 4); msg = $"El Código de Error es {codigoError}"; } response.MensajeError = msg; } return(response); }