/* * // GET: AberturaOS * public ActionResult Index(int pagina = 1) * { * AberturaOSModel lista = new AberturaOSModel(); * var listaOrdenada = lista.ListarAberturaOS().OrderBy(n => n.Numero) * .ToPagedList(pagina, 5); * return View(listaOrdenada); * } */ // GET: AberturaOS public ActionResult Index(string sortOrder = "", string currentFilter = "", string searchString = "", string ColunaPesquisa = "", int pagina = 1) { //https://docs.microsoft.com/pt-br/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application ViewBag.CurrentSort = sortOrder; if (searchString != "") { pagina = 1; } else { searchString = currentFilter.ToUpper(); } ViewBag.CurrentFilter = searchString.ToUpper(); AberturaOSModel lista = new AberturaOSModel(); //var listaOrdenada = lista.ListarAberturaOS(); var listaOrdenada = from s in lista.ListarAberturaOS() select s; if (!String.IsNullOrEmpty(searchString)) { switch (ColunaPesquisa) { case "Cliente": listaOrdenada = listaOrdenada.Where(s => s.Cliente.Nome.Contains(searchString.ToUpper())); break; case "Placa": listaOrdenada = listaOrdenada.Where(s => s.Veiculo.Placa.Contains(searchString.ToUpper())); break; case "Consultor Usuário": listaOrdenada = listaOrdenada.Where(s => s.ConsultorUsuario.Nome.Contains(searchString.ToUpper())); break; case "Reclamação": listaOrdenada = listaOrdenada.Where(s => s.Reclamacao.Contains(searchString.ToUpper())); break; //default: // break; } } switch (sortOrder) { case "Id": listaOrdenada = listaOrdenada.OrderBy(s => s.Id); break; case "Numero": listaOrdenada = listaOrdenada.OrderBy(s => s.Numero); break; case "Situação": listaOrdenada = listaOrdenada.OrderBy(s => s.Situacao.Descricao); break; case "TipoOS": listaOrdenada = listaOrdenada.OrderBy(s => s.TipoOS.Descricao); break; case "Cliente": listaOrdenada = listaOrdenada.OrderBy(s => s.Cliente.Nome); break; case "Placa": listaOrdenada = listaOrdenada.OrderBy(s => s.Veiculo.Placa); break; case "Quilometragem Entrada": listaOrdenada = listaOrdenada.OrderBy(s => s.QuilometragemEntrada); break; case "Consultor Usuário": listaOrdenada = listaOrdenada.OrderBy(s => s.ConsultorUsuario.Nome); break; case "Abertura": listaOrdenada = listaOrdenada.OrderBy(s => s.Abertura); break; case "Previsao Entrega": listaOrdenada = listaOrdenada.OrderBy(s => s.PrevisaoEntrega); break; case "Reclamação": listaOrdenada = listaOrdenada.OrderBy(s => s.Reclamacao); break; default: // numero ascending listaOrdenada = listaOrdenada.OrderBy(s => s.Numero); break; } return(View(listaOrdenada.ToPagedList(pagina, 5))); }
// GET: AberturaOS public ActionResult Index2(string sortOrder = "", string currentFilter = "", string searchString = "", int pagina = 1) { ViewBag.CurrentSort = sortOrder; if (searchString != "") { pagina = 1; } else { searchString = currentFilter.ToUpper(); } ViewBag.CurrentFilter = searchString.ToUpper(); AberturaOSModel lista = new AberturaOSModel(); //var listaOrdenada = lista.ListarAberturaOS(); var listaOrdenada = from s in lista.ListarAberturaOS() select s; if (!String.IsNullOrEmpty(searchString)) { listaOrdenada = listaOrdenada.Where(s => s.Veiculo.Placa.Contains(searchString.ToUpper())); } switch (sortOrder) { case "Id": listaOrdenada = listaOrdenada.OrderBy(s => s.Id); break; case "Numero": listaOrdenada = listaOrdenada.OrderBy(s => s.Numero); break; case "Situação": listaOrdenada = listaOrdenada.OrderBy(s => s.Situacao); break; case "TipoOS": listaOrdenada = listaOrdenada.OrderBy(s => s.TipoOS); break; case "Cliente": listaOrdenada = listaOrdenada.OrderBy(s => s.Cliente.Nome); break; case "Placa": listaOrdenada = listaOrdenada.OrderBy(s => s.Veiculo.Placa); break; case "Quilometragem Entrada": listaOrdenada = listaOrdenada.OrderBy(s => s.QuilometragemEntrada); break; case "Consultor Usuário": listaOrdenada = listaOrdenada.OrderBy(s => s.ConsultorUsuario.Nome); break; case "Abertura": listaOrdenada = listaOrdenada.OrderBy(s => s.Abertura); break; case "Previsao Entrega": listaOrdenada = listaOrdenada.OrderBy(s => s.PrevisaoEntrega); break; case "Reclamação": listaOrdenada = listaOrdenada.OrderBy(s => s.Reclamacao); break; default: // numero ascending listaOrdenada = listaOrdenada.OrderBy(s => s.Numero); break; } return(View(listaOrdenada.ToPagedList(pagina, 5))); }