/// <summary>
        /// Prepara un BO para la Busqueda en su respectivo catalogo
        /// </summary>
        /// <param name="catalogo">catalogo donde se realizara la busqueda</param>
        /// <returns></returns>
        public object PrepararBOBuscador(string catalogo)
        {
            object obj = null;

            switch (catalogo)
            {
            case "CuentaClienteIdealease":
                var cliente = new CuentaClienteIdealeaseBOF {
                    Nombre = vista.NombreCuentaCliente, UnidadOperativa = vista.UnidadOperativa, Cliente = new ClienteBO(), Activo = true
                };
                obj = cliente;
                break;

            case "DireccionCliente":
                var bo = new CuentaClienteIdealeaseBO {
                    UnidadOperativa = vista.UnidadOperativa, Cliente = new ClienteBO {
                        Id = vista.ClienteID
                    }, Id = vista.CuentaClienteID
                };
                var bof = new DireccionCuentaClienteBOF {
                    Cuenta = bo, Direccion = new DireccionClienteBO {
                        Facturable = true
                    }
                };
                obj = bof;
                break;
            }

            return(obj);
        }
        /// <summary>
        /// Despliega el Resultado del Buscador
        /// </summary>
        /// <param name="catalogo">Catalogo en el que se realizo la busqueda</param>
        /// <param name="selecto">Objeto Resultante</param>
        public void DesplegarResultadoBuscador(string catalogo, object selecto)
        {
            switch (catalogo)
            {
            case "CuentaClienteIdealease":
                CuentaClienteIdealeaseBOF cliente = (CuentaClienteIdealeaseBOF)selecto ??
                                                    new CuentaClienteIdealeaseBOF();

                if (cliente.Cliente == null)
                {
                    cliente.Cliente = new ClienteBO();
                }

                vista.CuentaClienteID = cliente.Id;

                vista.ClienteID = cliente.Cliente.Id;

                vista.NombreCuentaCliente = !string.IsNullOrEmpty(cliente.Nombre) ? cliente.Nombre : string.Empty;
                vista.ClienteNumeroCuenta = cliente.Numero;
                vista.EsFisico            = cliente.EsFisico;

                if (vista.CuentaClienteID != null && vista.ClienteID != null)
                {
                    DesplegarPersonasCliente();
                    InicializarDireccionCliente();
                    vista.HabilitarConsultaDireccionCliente(true);

                    if (vista.EsFisico == true)
                    {
                        vista.ConfigurarClienteFisico();
                    }
                    else
                    {
                        vista.ConfigurarClienteMoral();
                    }
                }
                else
                {
                    InicializarPersonasCliente();
                    InicializarDireccionCliente();
                    Inicializar();
                }
                break;

            case "DireccionCliente":

                if (selecto == null)
                {
                    vista.MostrarMensaje("No se ha seleccionado una dirección Facturable.", ETipoMensajeIU.INFORMACION);
                }
                DireccionCuentaClienteBOF bof = (DireccionCuentaClienteBOF)selecto ?? new DireccionCuentaClienteBOF();
                EstablecerDatosDireccionCliente(bof);
                break;
            }
        }
        public void EstablecerDatosDireccionCliente(DireccionCuentaClienteBOF bof)
        {
            if (bof.Direccion == null)
            {
                bof.Direccion = new DireccionClienteBO();
            }
            if (bof.Direccion.Ubicacion == null)
            {
                bof.Direccion.Ubicacion = new UbicacionBO();
            }
            if (bof.Direccion.Ubicacion.Ciudad == null)
            {
                bof.Direccion.Ubicacion.Ciudad = new CiudadBO();
            }
            if (bof.Direccion.Ubicacion.Estado == null)
            {
                bof.Direccion.Ubicacion.Estado = new EstadoBO();
            }
            if (bof.Direccion.Ubicacion.Municipio == null)
            {
                bof.Direccion.Ubicacion.Municipio = new MunicipioBO();
            }
            if (bof.Direccion.Ubicacion.Pais == null)
            {
                bof.Direccion.Ubicacion.Pais = new PaisBO();
            }

            vista.Calle              = bof.Direccion.Calle;
            vista.Direccion          = bof.Direccion.Direccion;
            vista.Colonia            = bof.Direccion.Colonia;
            vista.CodigoPostal       = bof.Direccion.CodigoPostal;
            vista.Ciudad             = bof.Direccion.Ubicacion.Ciudad.Codigo;
            vista.Estado             = bof.Direccion.Ubicacion.Estado.Codigo;
            vista.Municipio          = bof.Direccion.Ubicacion.Municipio.Codigo;
            vista.Pais               = bof.Direccion.Ubicacion.Pais.Codigo;
            vista.DireccionClienteID = bof.Direccion.Id;
        }
        /// <summary>
        /// Despliega los datos del contrato en la interfaz de usuario
        /// </summary>
        /// <param name="contrato">Contrato que contiene los datos a desplegar</param>
        public void DatosAInterfazUsuario(ContratoFSLBO contrato)
        {
            if (contrato == null)
            {
                contrato = new ContratoFSLBO();
            }
            if (contrato.Cliente == null)
            {
                contrato.Cliente = new CuentaClienteIdealeaseBO();
            }
            if (contrato.Cliente.Cliente == null)
            {
                contrato.Cliente.Cliente = new ClienteBO();
            }

            vista.CuentaClienteID     = contrato.Cliente.Id;
            vista.ClienteID           = contrato.Cliente.Cliente.Id;
            vista.NombreCuentaCliente = contrato.Cliente.Nombre;
            vista.ClienteNumeroCuenta = contrato.Cliente.Numero;
            vista.EsFisico            = contrato.Cliente.EsFisico;
            vista.SoloRepresentantes  = contrato.SoloRepresentantes;
            vista.ObligadosComoAvales = contrato.ObligadosComoAvales;

            if (contrato.Cliente.Direcciones.Count > 0)
            {
                if (contrato.Cliente.Direcciones.Count == 1)
                {
                    var bof = new DireccionCuentaClienteBOF {
                        Direccion = contrato.Cliente.Direcciones[0]
                    };
                    EstablecerDatosDireccionCliente(bof);
                }
                else
                {
                    vista.MostrarMensaje("Inconsistencias en las direcciones del cliente, la consulta regreso mas de una dirección", ETipoMensajeIU.ADVERTENCIA);
                }
            }

            if (vista.CuentaClienteID != null && vista.ClienteID != null && !string.IsNullOrEmpty(vista.NombreCuentaCliente) && vista.ModoEditar)
            {
                DesplegarPersonasCliente();
            }

            if (vista.EsFisico != true)
            {
                vista.RepresentantesLegalesContrato = contrato.RepresentantesLegales.ConvertAll(s => (RepresentanteLegalBO)s);
                vista.ConfigurarClienteMoral();
            }
            else
            {
                vista.HabilitarAgregarRepresentanteLegal(false);
                vista.HabilitarListadoRepresentantesLegales(false);
                vista.HabilitarSoloRepresentantes(false);
                vista.PermitirAgregarAvales(false);
                vista.PermitirSeleccionarAvales(false);
                vista.HabilitarObligadosComoAvales(false);
                vista.ConfigurarClienteFisico();
            }

            if (vista.SoloRepresentantes != true)
            {
                vista.ObligadosSolidariosContrato = contrato.ObligadosSolidarios.ConvertAll(s => (ObligadoSolidarioBO)s);
                vista.HabilitarAgregarObligadoSolidario(true);
                vista.HabilitarListadoObligadosSolidarios(true);
                if (vista.ObligadosComoAvales != true)
                {
                    vista.AvalesSeleccionados = new List <AvalBO>(contrato.Avales);
                    vista.PermitirAgregarAvales(true);
                    vista.PermitirSeleccionarAvales(true);
                    vista.HabilitarObligadosComoAvales(true);
                    vista.ActualizarAvales();
                    Vista.MostrarAvales(true);
                }
            }
            else
            {
                vista.HabilitarAgregarObligadoSolidario(false);
                vista.HabilitarListadoObligadosSolidarios(false);
                vista.MostrarObligadosSolidarios(false);
                vista.MostrarAvales(false);
                vista.PermitirAgregarAvales(false);
                vista.PermitirSeleccionarAvales(false);
            }
        }