private ConfiguracionWS ObtenerAutorizacion()
        {
            FactoriaFE factory = new FactoriaFE();

            ConfiguracionWS config = factory.ObtenerObjetoConfiguracion();

            string otroresultado = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "Configuracion.json"));

            ConfiguracionCliente configuracionCliente = JsonConvert.DeserializeObject<ConfiguracionCliente>(otroresultado);
            config.RutaCertificado = configuracionCliente.RutaCertificado;
            config.NombreServicio = configuracionCliente.NombreServicio;
            config.UrlLogin = configuracionCliente.ServidorAutorizacion;
            config.TiempoDeEspera = configuracionCliente.TimeOut;
            config.Cuit = configuracionCliente.Cuit;
            config.UrlNegocio = configuracionCliente.UrlNegocio;

            return config;
        }
        public void ProcesarCae(Comprobante comprobante)
        {
            FactoriaFE factory = new FactoriaFE();
            EquivalenciasAFIP equiv = new EquivalenciasAFIP();
            EquivalenciaTipoConcepto equivalenciaConcepto = new EquivalenciaTipoConcepto();

            FacturacionElectronica servicio = factory.ObtenerFacturacionElectronica(TipoWebService.Nacional);

            FeCabecera cabecera = factory.ObtenerCabecera();
            cabecera.PuntoDeVenta = comprobante.PuntoDeVenta;
            cabecera.CantidadDeRegistros = 1;
            cabecera.TipoComprobante = Convert.ToInt32(comprobante.TipoComprobante);

            FeDetalle detalle = factory.ObtenerDetalle();
            detalle.Concepto = equiv.ObtenerTipoDeConcepto(equivalenciaConcepto.ObtenerEquivalencia(comprobante.TipoServicio));
            detalle.DocumentoTipo = equiv.ObtenerTipoDeDocumento(comprobante.TipoDocumento);
            detalle.DocumentoNumero = comprobante.NumeroDeDocumento;
            detalle.ComprobanteDesde = comprobante.NumeroComprobante;
            detalle.ComprobanteHasta = comprobante.NumeroComprobante;
            detalle.ComprobanteFecha = comprobante.Fecha.ToString("yyyyMMdd");
            detalle.FechaServicioDesde = comprobante.FechaServicioDesde.ToString("yyyyMMdd");
            detalle.FechaServicioHasta = comprobante.FechaServicioHasta.ToString("yyyyMMdd");
            detalle.FechaVencimientoDePago = comprobante.FechaVencimientoPago.ToString("yyyyMMdd");
            detalle.MonedaId = "PES";
            detalle.MonedaCotizacion = 1;
            detalle.ImporteNeto = comprobante.ImporteTotal;
            if (comprobante.ImporteIva > 0)
            {
                IVA objectoIva = factory.ObtenerDetalleIva(equiv.ObtenerTipoDeIva(21), comprobante.ImporteNeto, comprobante.ImporteIva);
                detalle.ImporteIVA = comprobante.ImporteIva;
                detalle.Iva.Add(objectoIva);
            }
            detalle.ImporteTotal = comprobante.ImporteTotal;
            cabecera.DetalleComprobantes.Add(detalle);

            ConfiguracionWS config = this.ObtenerAutorizacion();
            Respuesta respuesta = new Respuesta() { Cae = "0"};
            List<string> problemas = new List<string>();
               try
            {
                CAERespuestaFe respuestaFe = servicio.ObtenerCaeWSFE(config, cabecera);
                foreach (CAEDetalleRespuesta item in respuestaFe.Detalle)
                {
                    if (item.Observaciones == null)
                    {
                        respuesta.AgregarProblema("");
                        respuesta.Cae = item.Cae.ToString();
                    }
                    else
                    {
                        foreach (Observacion itemobs in item.Observaciones)
                        {
                            respuesta.AgregarProblema(itemobs.Mensaje);
                        }
                    }
                }
             }
               catch (Exception ex)
               {
               respuesta.AgregarProblema(ex.Message);
               }
               respuesta.ToXmlVfp( Path.Combine( Environment.CurrentDirectory,"Respuesta.xml"));
        }