public async Task <Retorno> DadosPaginado(int QtdPorPagina, int PagAtual, string Filtro = null, string ValueFiltro = null) { try { var lista = _ctx.Usuarios.Select(a => new UsersDTO { Id = a.Id, Login = a.UserName, NomeDoUsuario = a.Nome, Email = a.Email, IdPerfil = a.IdPerfil }); //filtro if (Filtro != null && ValueFiltro != null) { Filtro = Filtro.Trim().ToUpper(); switch (Filtro) { case "NOME": lista = lista.Where(a => a.Login.Contains(ValueFiltro) || a.NomeDoUsuario.Contains(ValueFiltro) || a.Id.Contains(ValueFiltro) ) .OrderBy(a => a.NomeDoUsuario); break; } } else { lista = lista .OrderBy(a => a.Id); } var dados = Paginacao.GetPage <Usuarios, UsersDTO>(_ctx.Usuarios, lista, QtdPorPagina, PagAtual); return(new Retorno(true, "Dados Paginados", dados)); } catch (Exception ex) { _log.GerarLogDisc("Erro ao Paginar Usuarios", ex: ex); throw new Exception("Erro ao Paginar Usuarios", ex); } }
public async Task <Retorno> DadosPaginado(int QtdPorPagina, int PagAtual, string Filtro = null, string ValueFiltro = null) { try { var lista = _ctx.Genero.Select(a => new GeneroDTO { Id = a.Id, Nome = a.Nome }); //filtro if (Filtro != null && ValueFiltro != null) { Filtro = Filtro.Trim().ToUpper(); switch (Filtro) { case "CODIGO": lista = lista.Where(a => a.Id.ToString() == ValueFiltro); break; case "NOME": lista = lista.Where(a => a.Nome.Contains(ValueFiltro)) .OrderBy(a => a.Nome); break; } } else { lista = lista .OrderBy(a => a.Id); } var dados = Paginacao.GetPage <Genero, GeneroDTO>(_ctx.Genero, lista, QtdPorPagina, PagAtual); return(new Retorno(true, "Dados Paginados", dados)); } catch (Exception ex) { _log.GerarLogDisc("Erro ao Paginar Usuarios", ex: ex); throw new Exception("Erro ao Paginar Usuarios", ex); } }
public async Task <Retorno> DadosPaginado(int QtdPorPagina, int PagAtual, string TipoOrdenação, string Filtro = null, string ValueFiltro = null) { try { var lista = _ctx.Filme.Select(a => new FilmeDTO { Id = a.Id, Nome = a.Nome, }).ToList(); foreach (var item in lista) { item.Atores = _ctx.Ator .Join(_ctx.FilmeXator, ator => ator.Id, fa => fa.IdAtor, (ator, fa) => new { ator, fa }) .Select(x => new AtorDTO { Id = x.ator.Id, Nome = x.ator.Nome }).ToList(); item.Diretores = _ctx.Diretor .Join(_ctx.FilmeXdiretor, diretor => diretor.Id, fd => fd.Id, (diretor, fd) => new { diretor, fd }) .Select(x => new DiretorDTO { Id = x.diretor.Id, Nome = x.diretor.Nome }).ToList(); item.Generos = _ctx.Genero .Join(_ctx.FilmeXgenero, genero => genero.Id, fg => fg.Id, (genero, fg) => new { genero, fg }) .Select(x => new GeneroDTO { Id = x.genero.Id, Nome = x.genero.Nome }).ToList(); var quantRegistros = _ctx.FilmeXnota.Where(b => b.IdFilme == item.Id).Count(); if (quantRegistros > 0) { item.MediaNota = (_ctx.FilmeXnota.Where(b => b.IdFilme == item.Id).Sum(a => a.Nota)) / quantRegistros; } } var novaLista = new List <FilmeDTO>(); //filtro if (Filtro != null && ValueFiltro != null) { Filtro = Filtro.Trim().ToUpper(); switch (Filtro) { case "DIRETOR": foreach (var filme in lista) { foreach (var diretor in filme.Diretores) { if (diretor.Nome.Contains(ValueFiltro)) { novaLista.Add(filme); } } } break; case "NOME": lista = lista.Where(a => a.Nome.Contains(ValueFiltro)) .OrderBy(a => a.Nome).ToList(); break; case "GENERO": foreach (var filme in lista) { foreach (var genero in filme.Generos) { if (genero.Nome.Contains(ValueFiltro)) { novaLista.Add(filme); } } } break; case "ATORES": foreach (var filme in lista) { foreach (var atores in filme.Atores) { if (atores.Nome.Contains(ValueFiltro)) { novaLista.Add(filme); } } } break; } lista = novaLista; } else { lista = lista.OrderBy(a => a.Id).ToList(); } if (TipoOrdenação == "NOTA") { lista.OrderBy(a => a.MediaNota); } else { lista.OrderBy(a => a.Nome); } var dados = Paginacao.GetPage <Filme, FilmeDTO>(_ctx.Filme, lista.AsQueryable(), QtdPorPagina, PagAtual); return(new Retorno(true, "Dados Paginados", dados)); } catch (Exception ex) { _log.GerarLogDisc("Erro ao Paginar Usuarios", ex: ex); throw new Exception("Erro ao Paginar Usuarios", ex); } }