Esempio n. 1
0
        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
            }));
        }
Esempio n. 2
0
        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);
        }