private ConsultaEdocument GenerarLlamado(DatosCOVE datosCOVE, ConsultaEdocumentPor consultarPor)
        {
            var vucem = Util.ServicioVUCEM();
            //var io = FactoryEngine<IOperacionEmpresaDominio>.GetInstance("IOperacionEmpresaDominioConfig");
            var entidad = GenerarLlamadoEspecifico(datosCOVE, consultarPor);

            return(entidad);
            //var response = vucem.ConsultaEdocumentVucem(new ConsultaEdocumentVUCEMRequest());
        }
        private ConsultaEdocument GenerarLlamadoEspecifico(DatosCOVE datosCOVE, ConsultaEdocumentPor consultaPor)
        {
            //var vucem = Util.ServicioVUCEM();
            var io = FactoryEngine <IOperacionEmpresaDominio> .GetInstance("IOperacionEmpresaDominioConfig");

            var entidad = new ConsultaEdocument();

            switch (consultaPor)
            {
            case ConsultaEdocumentPor.Empresa:
                var req = new EntidadEmpresa()
                {
                    OperacionEspecifica = OperacionEmpresaItem.DameDatosEmpresaXId,
                    DatosEmpresa        = new Empresa()
                    {
                        IdEmpresaVw = datosCOVE.IdEmpresa
                    },
                    DatosPatente = new Patente()
                    {
                        IdPatente = datosCOVE.IdPatente
                    }
                };
                var response = io.OperacionEmpresaItem(req);
                entidad = new ConsultaEdocument()
                {
                    ArchivoCer      = GetArchivoCerKey(ConvertirEmpresaToArchivoCer(response.DatosEmpresa)),
                    ArchivoKey      = GetArchivoCerKey(ConvertirEmpresaToArchivoKey(response.DatosEmpresa)),
                    Edocument       = datosCOVE.Request.Edocument.Trim(),
                    RFC             = response.DatosEmpresa.RFC.Trim(),
                    PasswordCerKey  = response.DatosEmpresa.PasswordCertificado.Trim(),
                    PasswordWSVucem = response.DatosEmpresa.WebKeyVUCEM.Trim()
                };
                break;

            case ConsultaEdocumentPor.Patente:
                req = new EntidadEmpresa()
                {
                    OperacionEspecifica = OperacionEmpresaItem.DameDatosPatenteXId,
                    DatosEmpresa        = new Empresa()
                    {
                        IdEmpresaVw = datosCOVE.IdEmpresa
                    },
                    DatosPatente = new Patente()
                    {
                        IdPatente = datosCOVE.IdPatente
                    }
                };
                response = io.OperacionEmpresaItem(req);
                entidad  = new ConsultaEdocument()
                {
                    ArchivoCer      = GetArchivoCerKey(ConvertirPatenteToArchivoCer(response.DatosPatente)),
                    ArchivoKey      = GetArchivoCerKey(ConvertirPatenteToArchivoKey(response.DatosPatente)),
                    Edocument       = datosCOVE.Request.Edocument.Trim(),
                    RFC             = response.DatosPatente.RFC.Trim(),
                    PasswordCerKey  = response.DatosPatente.PasswordKey.Trim(),
                    PasswordWSVucem = response.DatosPatente.WebKeyVUCEM.Trim()
                };
                break;
            }
            return(entidad);
            //var response = vucem.ConsultaEdocumentVucem(new ConsultaEdocumentVUCEMRequest());
        }
        private ConsultaEdocumentVucemResponse1 LlamarAServicioVUCEM(DatosCOVE datosCOVE, ConsultaEdocumentPor consultarPor)
        {
            //pedir a base de datos path y archivo de cer,
            //luego path y archivo de key
            //tambien datos de key y cer.
            var request = new ConsultaEdocumentVucemRequest1()
            {
                request = new ConsultaEdocumentVUCEMRequest()
                {
                    Entidad = GenerarLlamado(datosCOVE, consultarPor)
                }
            };
            var vucem    = Util.ServicioVUCEM();
            var response = vucem.ConsultaEdocumentVucem(request);

            return(response);
        }