public async Task <IActionResult> Get(ProjetoBuscarCommand command) { try { return(Ok(_projetoRepository.Buscar(command))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public ProjetoBuscarViewModel Buscar(ProjetoBuscarCommand command) { var quantidadePorPagina = 10; var projetos = new List <Projeto>(); var paginas = 0; if (!string.IsNullOrWhiteSpace(command.Distrito) && command.CodigoClube == 0) { projetos = _context.Projeto .AsQueryable() .Where(x => x.Clube.Distrito.Numero == command.Distrito) .Skip(command.Pagina * quantidadePorPagina) .Take(quantidadePorPagina) .ToList(); paginas = _context.Projeto .AsQueryable() .Count(x => x.Clube.Distrito.Numero == command.Distrito) / quantidadePorPagina; } else if (command.CodigoClube > 0) { projetos = _context.Projeto .AsQueryable() .Where(x => x.Clube.Codigo == command.CodigoClube) .Skip(command.Pagina * quantidadePorPagina) .Take(quantidadePorPagina) .ToList(); paginas = _context.Projeto .AsQueryable() .Count(x => x.Clube.Codigo == command.CodigoClube) / quantidadePorPagina; } else { projetos = _context.Projeto .AsQueryable() .Skip(command.Pagina * quantidadePorPagina) .Take(quantidadePorPagina) .ToList(); paginas = _context.Projeto .AsQueryable() .Count() / quantidadePorPagina; } return(new ProjetoBuscarViewModel( pagina: command.Pagina, quantidadePaginas: paginas, projetos: new Projetos(projetos))); }