private string ConvertirObjetoAEnviarEnJson(DocumentoDto documento) { if (!Validador.esReceptorJsonEnvioValido(documento.receptor)) { documento.receptor = null; } documento.comprobanteXml = ConvertirStringABase64(documento.comprobanteXml); return(Newtonsoft.Json.JsonConvert.SerializeObject(documento, Newtonsoft.Json.Formatting.None, new Newtonsoft.Json.JsonSerializerSettings() { NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore })); }
public PostRespuestaEnvioHacienda EnviarDocumentoAHacienda(DocumentoDto data) { if (!Validador.esReceptorJsonEnvioValido(data.receptor)) { data.receptor = null; } var respuesta = new PostRespuestaEnvioHacienda(); respuesta.Clave = data.clave; var jsonEnvio = ConvertirObjetoAEnviarEnJson(data); var respuestaApi = PostDocumento(jsonEnvio); respuesta.TramaRecibida = respuestaApi.Content.ReadAsStringAsync().Result; if (string.IsNullOrEmpty(respuesta.TramaRecibida)) { respuesta.TramaRecibida = respuestaApi.ToString(); } respuesta.Mensaje = respuestaApi.ReasonPhrase; IEnumerable <string> valoresHeader; if (respuestaApi.IsSuccessStatusCode) { respuesta.DocumentoEnviado = true; if (respuestaApi.Headers.TryGetValues("Location", out valoresHeader)) { respuesta.RutaConsultaEstadoDocumento = valoresHeader.FirstOrDefault(); } } else { if (respuestaApi.Headers.TryGetValues("X-Error-Cause", out valoresHeader)) { respuesta.Mensaje = valoresHeader.FirstOrDefault(); respuesta.DocumentoEnviado = respuesta.Mensaje.Contains("ya fue recibido"); } } return(respuesta); }