//Obtener un Inmueble y sus correspondientes mvtos de emisión de opinión con otros otros conocceptos como: emisión de opinión y/o ContratoArrto.
        public List <ModeloNegocios.InmuebleArrto> ObtenerMvtosEmisionOpinionInmueblesRegistrados(int?IdInstitucion, int?FolioOpinion, int IdEstado, int IdMpo, int FolioSMOI, int?FolioSAEF)
        {
            List <ModeloNegocios.InmuebleArrto> ListInmuebleArrtoConAsociacionesCptos = null;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    List <spuSelectMvtosEmisionOpinionParaInmueblesArrto_Result> LSO = Conn.spuSelectMvtosEmisionOpinionParaInmueblesArrto(IdInstitucion, FolioOpinion, IdEstado, IdMpo, FolioSMOI, FolioSAEF).ToList();
                    ListInmuebleArrtoConAsociacionesCptos = Conn.spuSelectMvtosEmisionOpinionParaInmueblesArrto(IdInstitucion, FolioOpinion, IdEstado, IdMpo, FolioSMOI, FolioSAEF)
                                                            .Select(RegistroBD => new ModeloNegocios.InmuebleArrto
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        IdInmuebleArrendamiento = RegistroBD.IdInmuebleArrendamiento, //PK
                        IdInstitucion           = RegistroBD.Fk_IdInstitucion,
                        NombreCargo             = RegistroBD.CargoUsuarioRegistro,

                        //RCA 02/01/2018
                        //se comento ya que por medio del stored se obtiene este dato
                        // IdCargo = RegistroBD.Fk_IdCargo,

                        IdUsuarioRegistro      = RegistroBD.Fk_IdUsuarioRegistro,
                        FechaAltaMvtoAInmueble = RegistroBD.FechaRegistro,

                        NombreInmueble = RegistroBD.NombreInmueble,
                        IdPais         = RegistroBD.Fk_IdPais,
                        //propiedades de inmueble nacional
                        IdEstado           = RegistroBD.Fk_IdEstado,    //posible: null
                        IdMunicipio        = RegistroBD.Fk_IdMunicipio, //posible: null
                        IdLocalidadColonia = RegistroBD.Fk_IdLocalidad, //posible: null
                        IdTipoVialidad     = RegistroBD.Fk_IdTipoVialidad,
                        CodigoPostal       = RegistroBD.CodigoPostal,
                        //propiedades comunnes de cualquier inmueble
                        NombreVialidad = RegistroBD.NombreVialidad,
                        NumExterior    = RegistroBD.NumExterior,
                        NumInterior    = RegistroBD.NumInterior,
                        //propiedades de inmueble extranjero
                        CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                        EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                        CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                        MunicipioExtranjero    = RegistroBD.MunicipioExtranjero,

                        //RCA 06/07/2018
                        FolioSAEF = RegistroBD.FolioSAEF,

                        //propiedad que es un apuntador a objeto de negocio embedido: opcional
                        EmisionOpinion = new ModeloNegocios.AplicacionConcepto
                        {
                            IdAplicacionConcepto      = RegistroBD.IdAplicacionConcepto,
                            FolioAplicacionConcepto   = RegistroBD.FolioAplicacionConcepto,
                            TemaAplicacionConcepto    = RegistroBD.TemaAplicacionConcepto,
                            FolioSMOI_AplicadoOpinion = RegistroBD.FolioSMOI,
                            IsNotReusable             = RegistroBD.IsNotReusable
                        },

                        FolioContratoArrtoVsInmuebleArrendado = RegistroBD.FolioContratoAlQueAlplicaOpinion,//puede ser nulo, porque quizas el inmueble no se asocia a un ContratoArrto.
                        OtraColonia = RegistroBD.OtraColonia
                    }).OrderByDescending(o => o.EmisionOpinion.IdAplicacionConcepto).ThenByDescending(o => o.FolioContratoArrtoVsInmuebleArrendado).ToList();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Ha ocurrido un error al recuperar emisiones de opinón de inmuebles [ObtenerMvtosEmisionOpinionInmueblesRegistrados]: ", ex.Message));
                }
            }
            return(ListInmuebleArrtoConAsociacionesCptos);
        }