public IEnumerable<modAlojamiento> GetAlojamientos(FiltroAlojamiento fa) { var busqueda = from a in bd.Alojamiento join ta in bd.Tipo_Alojamiento on a.id_tipo equals ta.id select new { entity = a, tipo = ta }; if (fa != null) { if (!string.IsNullOrEmpty(fa.Nombre)) { busqueda = from a in busqueda where a.entity.nombre.Contains(fa.Nombre) || fa.Nombre.Contains(a.entity.nombre) || a.entity.descripcion.Contains(fa.Nombre) select a; } if (fa.IdTipo.HasValue) { busqueda = from a in busqueda where a.entity.id_tipo == fa.IdTipo.Value select a; } } return busqueda.Select(x => new modAlojamiento() { alojamientoDB = x.entity, DesTipo = x.tipo.descripcion }) ; }
public ActionResult Buscar(FiltroAlojamiento filtro) { var serv = new AlojamientoService(); var resultOrd = serv.GetAlojamientos(filtro).OrderBy(x => x.Nombre); var longPag = Int32.Parse(System.Configuration.ConfigurationManager.AppSettings["AlojamientosPorPagina"]); Double cantPag = ((Double)resultOrd.Count()) / longPag; var result = resultOrd.Skip((filtro.Pagina - 1) * longPag).Take(longPag); var cantPagReal = Math.Truncate(cantPag); if ((cantPag - cantPagReal) > 0) cantPagReal += 1; ViewBag.CantPaginas = (int)cantPagReal; ViewBag.Pagina = filtro.Pagina; return PartialView("ResultadosAlojamientos", result); }