Exemplo n.º 1
0
        public GridDto <TarefaGridDto> CarregarGrid(int paginaAtual = 0, int itensPorPagina = 10, string filtro = null,
                                                    TarefaGridFiltroAvancadoDto filtroAvancado = null, bool usarFiltroAvancado = false)
        {
            var gridDto = _tarefaAppService.CarregarGrid(paginaAtual, itensPorPagina, filtro, usarFiltroAvancado ? filtroAvancado : null);

            return(gridDto);
        }
        public GridDto <TarefaGridDto> CarregarGrid(int numeroDaPagina, int registrosPorPagina, string filtro, TarefaGridFiltroAvancadoDto filtroAvancado = null)
        {
            var gridDto = new GridDto <TarefaGridDto>();

            if (numeroDaPagina < 1)
            {
                numeroDaPagina = 1;
            }

            var query = _tarefaRepository.GetAll()
                        .OrderBy(p => p.Titulo)
                        .AsQueryable();

            if (filtroAvancado != null)
            {
                if (!string.IsNullOrWhiteSpace(filtroAvancado.Titulo))
                {
                    query = query.Where(t => EF.Functions.Like(t.Titulo, $"%{filtroAvancado.Titulo}%"));
                }
            }
            else
            {
                query = query.Where(t => !t.Excluido);

                if (!string.IsNullOrWhiteSpace(filtro))
                {
                    query = query.Where(t => EF.Functions.Like(t.Titulo, $"%{filtro}%"));
                }
            }

            gridDto.TotalDeItensEncontrados = query.Count();
            gridDto.Itens = query
                            .Select(t => new TarefaGridDto()
            {
                Id                    = t.Id,
                Titulo                = t.Titulo,
                Descricao             = t.Descricao,
                DataDaUltimaAlteracao = t.DataDaUltimaAlteracao == null ? "" : ((DateTime)t.DataDaUltimaAlteracao).ToString("MM/dd/yyyy HH:mm"),
                DataDeCadastro        = t.DataDeCadastro.ToString("MM/dd/yyyy HH:mm"),
                Excluido              = t.Excluido
            })
                            .Skip((numeroDaPagina - 1) * registrosPorPagina)
                            .Take(registrosPorPagina)
                            .ToList();

            return(gridDto);
        }