/// <summary>
        /// Agrega un Obligados Solidario al Contrato
        /// </summary>
        /// <param name="obligado">Obligado Solidario a Agregar al Contrato</param>
        /// <param name="representantes">Representantes Legales del Obligado Solidario</param>
        public void AgregarObligadoSolidarioContrato(ObligadoSolidarioBO obligado, List <RepresentanteLegalBO> representantes)
        {
            try
            {
                if (representantes == null)
                {
                    vista.MostrarMensaje("Es necesario seleccionar al menos un representante legal, para el obligado solidarío.", ETipoMensajeIU.ADVERTENCIA);
                }
                if (representantes.Count <= 0)
                {
                    vista.MostrarMensaje("Es necesario seleccionar al menos un representante legal, para el obligado solidarío.", ETipoMensajeIU.ADVERTENCIA);
                }

                if (obligado != null && obligado.Id != null)
                {
                    if (vista.ObligadosSolidariosContrato.Find(obl => obligado.Id == obl.Id) == null)
                    {
                        if (obligado.DireccionPersona == null || string.IsNullOrEmpty(obligado.DireccionPersona.Calle))
                        {
                            var cciBR = new CuentaClienteIdealeaseBR();
                            List <ObligadoSolidarioBO> obls = cciBR.ConsultarObligadosSolidarios(dataContext, obligado, new CuentaClienteIdealeaseBO());

                            ObligadoSolidarioBO encontrado = obls.Find(ob => ob.Id == obligado.Id);

                            if (encontrado != null)
                            {
                                obligado = encontrado;
                            }
                        }
                        //SC0005
                        ((ObligadoSolidarioMoralBO)obligado).Representantes = representantes;

                        var Obligados = new List <ObligadoSolidarioBO>(vista.ObligadosSolidariosContrato)
                        {
                            obligado
                        };
                        vista.ObligadosSolidariosContrato = Obligados;
                    }
                    else
                    {
                        vista.MostrarMensaje("El Obligado Solidario seleccionado ya se encuentra asignado al contrato.", ETipoMensajeIU.ADVERTENCIA);
                    }
                }
                else
                {
                    vista.MostrarMensaje("Se requiere de un Obligado Solidario seleccionado valido para agregar al contrato.", ETipoMensajeIU.ADVERTENCIA);
                }
            }
            catch (Exception ex)
            {
                vista.MostrarMensaje("Inconsistencias al intentar agregar un Obligado Solidario al contrato.", ETipoMensajeIU.ERROR, NombreClase + ".AgregarObligadoSolidarioContrato :" + ex.Message);
            }
        }
        public void ObtenerRepresentanteOS(ObligadoSolidarioBO obligado)
        {
            var cuentaBR = new CuentaClienteIdealeaseBR();

            try
            {
                if (obligado != null && obligado.Id != null)
                {
                    List <ObligadoSolidarioBO> obligs = cuentaBR.ConsultarObligadosSolidarios(dataContext, obligado, new CuentaClienteIdealeaseBO {
                        Id = vista.CuentaClienteID
                    });

                    if (obligs == null)
                    {
                        return;
                    }
                    if (obligs.Count <= 0)
                    {
                        return;
                    }
                    if (obligs.Count > 1)
                    {
                        throw new Exception("La consulta ha devuelto más de un valor, esto podría significar un conflicto en el sistema, verifique su información por favor");
                    }

                    ObligadoSolidarioBO oblig = obligs[0];
                    if (oblig.TipoObligado == ETipoObligadoSolidario.Moral)
                    {
                        vista.RepresentantesObligado = cuentaBR.ConsultarRepresentantesLegales(dataContext, new CuentaClienteIdealeaseBO {
                            Id = vista.CuentaClienteID
                        }, obligado, new RepresentanteLegalBO {
                            Activo = true
                        });
                        vista.MostrarRepresentantesObligados(true);
                    }
                    else
                    {
                        vista.RepresentantesObligado = new List <RepresentanteLegalBO>();
                    }
                }
            }
            catch (Exception ex)
            {
                vista.MostrarMensaje("Inconsistencias al intentar agregar un Obligado Solidario al contrato.", ETipoMensajeIU.ERROR, NombreClase + ".ObtenerRepresentanteOS :" + ex.Message);
            }
        }
        public ObligadoSolidarioBO ConsultarObligadoSolidario(ObligadoSolidarioBO obligado)
        {
            ObligadoSolidarioBO obligadoa = null;

            try
            {
                if (obligado != null && obligado.Id != null)
                {
                    if (vista.ObligadosSolidariosContrato.Find(obl => obligado.Id == obl.Id) == null)
                    {
                        if (obligado.DireccionPersona == null || string.IsNullOrEmpty(obligado.DireccionPersona.Calle))
                        {
                            var cciBR = new CuentaClienteIdealeaseBR();
                            List <ObligadoSolidarioBO> obls = cciBR.ConsultarObligadosSolidarios(dataContext, obligado, new CuentaClienteIdealeaseBO());

                            ObligadoSolidarioBO encontrado = obls.Find(ob => ob.Id == obligado.Id);

                            if (encontrado != null)
                            {
                                obligadoa = encontrado;
                            }
                        }
                    }
                    else
                    {
                        vista.MostrarMensaje("El Obligado Solidario seleccionado ya se encuentra asignado al contrato.", ETipoMensajeIU.ADVERTENCIA);
                    }
                }
                else
                {
                    vista.MostrarMensaje("Se requiere de un Obligado Solidario seleccionado valido para agregar al contrato.", ETipoMensajeIU.ADVERTENCIA);
                }

                return(obligadoa);
            }
            catch (Exception ex)
            {
                throw new Exception("Inconsistencias al intentar consultar un Obligado Solidario al contrato." + ex.Message);
            }
        }