public IWSAAProxy ObtenerWSAA( IConfiguracionWS config )
 {
     WSAA wsaa = new WSAA();
     WSAAProxy retorno = new WSAAProxy( wsaa );
     retorno.Timeout = config.TiempoDeEspera;
     return retorno;
 }
        public void Validar( IConfiguracionWS configuracion )
        {
            if ( configuracion.RutaCertificado.Length == 0 )
                throw new ValidacionException("ValidarDatosBasicos", "Falta la ubicacion del certificado.");

            if ( !this.accesoDisco.ArchivoExiste( configuracion.RutaCertificado ) )
                throw new ValidacionException("ValidarDatosBasicos", "No se encontro el certificado.");

            if ( configuracion.Cuit == 0 )
                throw new ValidacionException("ValidarDatosBasicos", "Falta especificar el número de C.U.I.T.");

            if ( configuracion.UrlLogin.Length == 0 )
                throw new ValidacionException("ValidarDatosBasicos", "Falta especificar la URL de servidor.");

            if ( configuracion.NombreServicio.Length == 0 )
                throw new ValidacionException("ValidarDatosBasicos", "Falta especificar el servicio al cual se va a conectar.");
        }
        // https://wsaahomo.afip.gov.ar/ws/services/LoginCms Web service de testing Afip
        public ServidorAutenticacion( IFactoriaHerramientasWSAA factoriaHerramientas, IConfiguracionWS config )
        {
            this.configuracion = config;

            this.webServiceAutenticacion = factoriaHerramientas.ObtenerWSAA( config );
            this.generadorTRA = factoriaHerramientas.ObtenerGeneradorTRA();
            this.accesoWeb = factoriaHerramientas.ObtenerAccesoWeb();
            this.firmadorCertificados = factoriaHerramientas.ObtenerFirmadorDeCertificados();
            this.manejadorErrores = factoriaHerramientas.ObtenerManejadorErrores();
            this.validadorDeConfiguracion = factoriaHerramientas.ObtenerValidadorDeConfiguracion();
            this.deserializadorDeRespuestaLogin = factoriaHerramientas.ObtenerDeserializadorDeRespuestaLogin( config );

            if ( !String.IsNullOrEmpty( this.configuracion.ProxyServidor ) )
            {
                WebProxy proxy = new WebProxy( this.configuracion.ProxyServidor, this.configuracion.ProxyPuerto );
                proxy.Credentials = new NetworkCredential( this.configuracion.ProxyUsuario, this.configuracion.ProxyPass );
                this.webServiceAutenticacion.Proxy = proxy;
            }
        }
 public IDeserializadorDeRespuestaLogin ObtenerDeserializadorDeRespuestaLogin( IConfiguracionWS config )
 {
     return new DeserializadorDeRespuestaLogin( config );
 }
 public DeserializadorDeRespuestaLogin( IConfiguracionWS config )
 {
     this.configuracion = config;
 }