public ActionResult Busqueda(BusquedaInmuebleView p) { List <Inmueble> noDisponibles = new List <Inmueble>(); List <Inmueble> disponibles = new List <Inmueble>(); try { var listaInmuebles = repositorioInmueble.BuscarDisponibles(p.Uso, p.Importe); if (listaInmuebles.Count != 0) { TempData["FechaInicio"] = p.FechaInicio; TempData["FechaFinal"] = p.FechaFin; foreach (Inmueble i in listaInmuebles) { var listaContratos = repositorioContrato.ObtenerTodosPorInmueble(i.Id, p.FechaInicio, p.FechaFin); if (listaContratos.Count != 0) { noDisponibles.Add(i); } else { disponibles.Add(i); } } if (disponibles.Count != 0) { return(View("Disponibles", disponibles)); } else if (noDisponibles.Count != 0) { ViewBag.Mensaje = "Existen Inmuebles con contratos vigentes"; // Mostrar return(View("Disponibles", noDisponibles)); } } else { ViewBag.TipoInmueble = repositorioInmueble.ObtenerTodosTipos(); TempData["Mensaje"] = "No hay Inmuebles disponibles."; return(View(p)); } return(View()); } catch (Exception ex) { ViewBag.Error = ex.Message; ViewBag.StackTrate = ex.StackTrace; return(View()); } }