private async Task <DadosFiltrados> FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao) { var artists = await _unitOfWork.Artists.GetAllAsync(); int total = artists.Count(); if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase)) { // Dynamic LINQ artists = artists.Where("Name.ToLower().Contains(@0) ", parametrosPaginacao.SearchPhrase.ToLower()); } var artistsFiltered = artists.OrderBy(parametrosPaginacao.CampoOrdenado) .Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount) .Take(parametrosPaginacao.RowCount) .ToList(); DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao) { rows = artistsFiltered.ToList(), total = total }; return(dadosFiltrados); }
//Metodo para filtrar dados e exibir tabela private DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao) { var livros = db.Livros.Include(l => l.Genero); int total = livros.Count(); if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase)) { int ano = 0; int.TryParse(parametrosPaginacao.SearchPhrase, out ano); decimal valor = 0; decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor); livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0) OR AnoEdicao == (@1) OR Valor == (@2)", parametrosPaginacao.SearchPhrase, ano, valor); } //skip(5) - pular os primeiros(5) registros e Take(5) - mostrar os proximos (10) var livrosPaginados = livros.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount); DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao) { rows = livrosPaginados.ToList(), total = total }; return(dadosFiltrados); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { HttpRequestBase request = controllerContext.HttpContext.Request; ParametrosPaginacao parametrosPaginacao = new ParametrosPaginacao(request.Form); return(parametrosPaginacao); }
private DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao) { var livros = db.Livros.Include(l => l.Genero); int total = livros.Count(); if (!string.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase)) { int ano = 0; int.TryParse(parametrosPaginacao.SearchPhrase, out ano); var valor = 0.0m; decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor); livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0)" + " OR AnoEdicao == @1 OR Valor = @2", parametrosPaginacao.SearchPhrase, ano, valor); } var livrosPaginados = livros.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount).ToList(); DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao) { rows = livrosPaginados.ToList(), total = total }; return(dadosFiltrados); }
public JsonResult Listar(ParametrosPaginacao paginacao) { var livros = db.Livros.AsQueryable(); int totalLivros = livros.Count(); if (!String.IsNullOrWhiteSpace(paginacao.SearchPhrase)) { // tentar converter em número para pesquisa int ano = 0; int.TryParse(paginacao.SearchPhrase, out ano); // tentar converter em décima para pesquisa decimal valor = 0.0m; decimal.TryParse(paginacao.SearchPhrase, out valor); // utiliza Dynamic LINQ para fazer o filtro livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0) OR AnoEdicao == @1 OR Valor == @2", paginacao.SearchPhrase, ano, valor); } // utiliza Dynamic LINQ para fazer o ordenamento por um campo var livrosFiltrados = livros.OrderBy(paginacao.CampoOrdenado).Skip((paginacao.Current - 1) * paginacao.RowCount).Take(paginacao.RowCount).ToList(); int totalFiltrado = livrosFiltrados.Count(); return(Json(new DadosFiltrados() { current = paginacao.Current, rowCount = paginacao.RowCount, rows = livrosFiltrados, total = totalLivros }, JsonRequestBehavior.AllowGet)); }
// ao utilizar valores de parametros padrões o .net entende que esta variavel é opcional. // não é possível acrescentar parametros não opcionais apos parametros opcionais tendo que colocar parametros public JsonResult Listar(ParametrosPaginacao parametrosPaginacao) // pagina e quantidade de registro por pag { DadosFiltro dadosFiltrados = NewMethod(parametrosPaginacao); // como foi mudado o nome da view criada é necessário passar como parametro aqui // é nessário pasasr o formato correto que o bootgrid pede na documentação return(Json(dadosFiltrados, JsonRequestBehavior.AllowGet)); }
public ListaPaginada <PostsModel> Get([FromQuery] ParametrosPaginacao model) { var posts = new List <PostsModel>(); posts = RestornaPostsList(); if (posts != null) { posts = posts.Where(x => x.Titulo.ToLower().Contains(model.buscaTermo.ToLower())).ToList(); } var listaPaginada = new ListaPaginada <PostsModel>(model.PageNumber, model.PageSize); return(listaPaginada.Carregar(posts)); }
public DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao) { var generos = _repositorio.GetAll().ToList(); int total = generos.Count(); if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase)) { generos = generos.Where(x => x.Nome.Contains(parametrosPaginacao.SearchPhrase)).ToList(); } var generosPaginados = generos.OrderBy(x => x.Nome).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount); DadosFiltrados dadosFiltrados = new DadosFiltrados() { }; return(dadosFiltrados); }
private DadosFiltrados FiltrarEPaginar(ParametrosPaginacao parametrosPaginacao) { var pecas = db.Pecas.Include(p => p.Fornecedor); int total = pecas.Count(); if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase)) { decimal valor = 0; decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor); pecas = pecas.Where("Produto.Contains(@0) OR Valor = @1", parametrosPaginacao.SearchPhrase, valor); } var pecasPaginadas = pecas.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount); DadosFiltrados dadosFiltrados = new DadosFiltrados(parametrosPaginacao) { rows = pecasPaginadas.ToList(), total = total }; return(dadosFiltrados); }
private DadosFiltro NewMethod(ParametrosPaginacao parametrosPaginacao) { /*// obterá: sort[Titulo] || sort[Autor] || sort[AnoEdicao] || sort[Valor] * string chav = Request.Form.AllKeys.Where(k => k.StartsWith("sort")).FirstOrDefault(); * // cariavel que recebe a ordenação do formulario * string ordenacao = Request[chav]; * string campo = chav.Replace("sort[", string.Empty).Replace("]", string.Empty);*/ var livros = db.Livros.Include(l => l.Genero); int total = livros.Count(); // verifica campo searchPhrase está vazio if (!String.IsNullOrWhiteSpace(parametrosPaginacao.SearchPhrase)) { // int e decimal auxiliares para realizar a validação int ano = 0; decimal valor = 0.0m; // int.tryparse verifica se uma string tem o valor de um inteiro caso seja atribui o valor inteiro para a variavel int.TryParse(parametrosPaginacao.SearchPhrase, out ano); // decimal.tryparse verigica se o valor contino na string é decimal caso seja atribui o valor decimal para a variavel decimal.TryParse(parametrosPaginacao.SearchPhrase, out valor); // utilizando linq.dynamic para procurar pela frase inserida livros = livros.Where("Titulo.Contains(@0) OR Autor.Contains(@0) OR AnoEdicao == @1 OR Valor == @2", parametrosPaginacao.SearchPhrase, ano, valor); } /* * // caso o titulo não seja nulo nem contenha valores em branco * if (!String.IsNullOrWhiteSpace(livro.Titulo)) * { * // retorna a lista de livros que contenha o titulo passado * livros = livros.Where(l => l.Titulo.Contains(livro.Titulo)); * } * if (!String.IsNullOrWhiteSpace(livro.Autor)) * { * // retorna a lista de livros que contenha o autor informado * livros = livros.Where(l => l.Autor.Contains(livro.Autor)); * } * if (livro.AnoEdicao != 0) * { * // retorna a lista de livros que contenha o ano informado * livros = livros.Where(l => l.AnoEdicao.ToString().Contains(livro.AnoEdicao.ToString())); * } * if (livro.Valor != decimal.Zero) * { * // retorna a lista de livros que contenha o valor informado * livros = livros.Where(l => l.Valor.ToString().Contains(livro.Valor.ToString())); * }*/ // variavel auxioliar com o campo e a ordenacao // string campoOrdenacao = string.Format("{0} {1}", campo, ordenacao); // usando Linq // Skip((pag-1)*regis): pagina - 1 x registros por pagina // dessa forma toda a cada pagina pularemos os registros que já estão na pagina anterior var livrosPaginados = livros.OrderBy(parametrosPaginacao.CampoOrdenado).Skip((parametrosPaginacao.Current - 1) * parametrosPaginacao.RowCount).Take(parametrosPaginacao.RowCount); // utilizando linq.dynamic DadosFiltro dadosFiltrados = new DadosFiltro(parametrosPaginacao) { rows = livrosPaginados.ToList(), total = total }; return(dadosFiltrados); }
public async Task <JsonResult> Listar(ParametrosPaginacao parametrosPaginacao) { DadosFiltrados dadosFiltrados = await FiltrarEPaginar(parametrosPaginacao); return(Json(dadosFiltrados, JsonRequestBehavior.AllowGet)); }
public DadosFiltrados(ParametrosPaginacao parametrosPaginacao) { rowCount = parametrosPaginacao.RowCount; current = parametrosPaginacao.Current; }
public JsonResult Listar(ParametrosPaginacao parametrosPaginacao) { DadosFiltrados dadosFiltrados = FiltrarEPaginar(parametrosPaginacao); return(Json(dadosFiltrados, JsonRequestBehavior.AllowGet)); }
public JsonResult Listar(ParametrosPaginacao parametrosPaginacao) { DadosFiltrados dadosFiltrados = FiltrarEPaginar(parametrosPaginacao); return(Json(dadosFiltrados)); }