public int CantidadMaximaDeRegistros( ConfiguracionWS config )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFe.Wsfe, config );

            return this.funcionesFe.CantidadMaximaDeRegistros( aut );
        }
 public ServidorAutenticacion ObtenerServidorAutenticacion(ConfiguracionWS config)
 {
     // llamado de Organic/Lince
     IFactoriaHerramientasWSAA factoriaHerramientasWSAA = new FactoriaHerramientasWSAA();
     return factoriaHerramientasWSAA.ObtenerServidorAutenticacion( config );
 }
        public List<UltimoNumeroComprobante> NumeracionPorComprobantes( ConfiguracionWS config, int puntoDeVenta )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFe.Wsfe, config );

            return this.funcionesFe.NumeracionPorComprobantes( aut, puntoDeVenta );
        }
 private Autorizacion IniciarWSAA( ConfiguracionWS config )
 {
     IFactoriaHerramientasWSAA factoriaHerramientasWSAA = new FactoriaHerramientasWSAA();
     ServidorAutenticacion wsaut = factoriaHerramientasWSAA.ObtenerServidorAutenticacion( config );
     return wsaut.ObtenerAutorizacion();
 }
        public List<UnidadDeMedida> ObtenerValoresUnidadDeMedida( ConfiguracionWS config )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config );

            return this.funcionesFex.ObtenerValoresUnidadDeMedida( aut );
        }
        private void AplicarConfiguracionWS( SoapHttpClientProtocol ws, ConfiguracionWS config )
        {
            ws.Url = config.UrlNegocio;

            ws.Timeout = config.TiempoDeEspera;

            if ( !config.ProxyServidor.Equals( String.Empty ) )
            {
                WebProxy proxy = new WebProxy( config.ProxyServidor, config.ProxyPuerto );
                proxy.Credentials = new NetworkCredential( config.ProxyUsuario, config.ProxyPass );
                ws.Proxy = proxy;
            }
        }
        public int ObtenerUltimoNumeroDeComprobanteX( ConfiguracionWS config, int pventa, int tipoComprobante )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config );

            return this.funcionesFex.ObtenerUltimoNumeroDeComprobanteX( aut, pventa, tipoComprobante );
        }
        public List<TipoMoneda> ObtenerValoresMonedas( ConfiguracionWS config )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config );

            return this.funcionesFex.ObtenerValoresMonedas( aut );
        }
        public List<Pais> ObtenerCuitDePaises( ConfiguracionWS config )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config );

            return this.funcionesFex.ObtenerCuitDePaises( aut );
        }
        public List<CAERespuestaFex> ObtenerCaeWSFEX( ConfiguracionWS config, List<FexCabecera> comprobantes )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config );

            return this.funcionesFex.ObtenerCaeWSFEX( aut, comprobantes );
        }
        public CAERespuestaFex ObtenerCaeWSFEX( ConfiguracionWS config, FexCabecera cabFex )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config );

            return this.funcionesFex.ObtenerCaeWSFEX( aut, cabFex );
        }
        public CAERespuestaFe ObtenerCaeWSFE( ConfiguracionWS config, FeCabecera cabFe )
        {
            Autorizacion aut = this.IniciarWSAA( config );
            this.AplicarConfiguracionWS( this.funcionesFe.Wsfe, config );

            return this.funcionesFe.ObtenerCae( aut, cabFe );
        }
 public ServidorAutenticacion ObtenerServidorAutenticacion( ConfiguracionWS config )
 {
     return new ServidorAutenticacion( this, config );
 }