コード例 #1
0
        public void BuscarFuncionarios(int quantidadePorPagina, ref PaginacaoGenericaViewModel paginacao, ref List <Funcionario> funcionarios, BuscarGridControlePontoFeriasFuncionarioViewModel busca, int pagina = 1)
        {
            if (!busca.UnidadeId.HasValue &&
                !busca.SupervisorId.HasValue &&
                !busca.FuncionarioId.HasValue &&
                string.IsNullOrEmpty(busca.ColunaUnidade) &&
                string.IsNullOrEmpty(busca.ColunaSupervisor) &&
                string.IsNullOrEmpty(busca.ColunaFuncionario))
            {
                var quantidadeFuncionarios = _controleFeriasServico.BuscarPor(x => x.AutorizadoTrabalhar).Count;
                paginacao = new PaginacaoGenericaViewModel(quantidadePorPagina, pagina, quantidadeFuncionarios);
                var controleferias = _controleFeriasServico.BuscarPor(x => x.AutorizadoTrabalhar && x.ListaPeriodoPermitido.Any()).ToList();
                funcionarios = controleferias.Select(x => x.Funcionario).Distinct().ToList();
                funcionarios = funcionarios.OrderBy(x => x.Pessoa.Nome)?.ItensDaPagina(paginacao.RegistroInicial, paginacao.RegistrosPorPagina)?.ToList();
            }
            else
            {
                var predicate = PredicateBuilder.True <ControleFerias>();

                predicate = predicate.And(x => x.AutorizadoTrabalhar && x.ListaPeriodoPermitido.Any());

                if (busca.UnidadeId.HasValue)
                {
                    predicate = predicate.And(x => x.Funcionario.Unidade.Id == busca.UnidadeId.Value);
                }

                if (busca.SupervisorId.HasValue)
                {
                    predicate = predicate.And(x => x.Funcionario.Supervisor.Id == busca.SupervisorId.Value);
                }

                if (busca.FuncionarioId.HasValue)
                {
                    predicate = predicate.And(x => x.Funcionario.Id == busca.FuncionarioId.Value);
                }

                if (!string.IsNullOrEmpty(busca.ColunaUnidade))
                {
                    predicate = predicate.And(x => x.Funcionario.Unidade.Nome.ToLower().Contains(busca.ColunaUnidade.ToLower()));
                }

                if (!string.IsNullOrEmpty(busca.ColunaSupervisor))
                {
                    predicate = predicate.And(x => x.Funcionario.Supervisor.Pessoa.Nome.ToLower().Contains(busca.ColunaSupervisor.ToLower()));
                }

                if (!string.IsNullOrEmpty(busca.ColunaFuncionario))
                {
                    predicate = predicate.And(x => x.Funcionario.Pessoa.Nome.ToLower().Contains(busca.ColunaFuncionario.ToLower()));
                }

                funcionarios = _controleFeriasServico.BuscarPor(predicate)?.Select(x => x.Funcionario)?.ToList();
                paginacao    = new PaginacaoGenericaViewModel(quantidadePorPagina, pagina, funcionarios.Count);

                funcionarios = funcionarios.Distinct().OrderBy(x => x.Pessoa.Nome)?.ItensDaPagina(paginacao.RegistroInicial, paginacao.RegistrosPorPagina)?.ToList();
            }
        }
コード例 #2
0
        public void BuscarFuncionarios(int quantidadePorPagina, ref PaginacaoGenericaViewModel paginacao, ref List <Funcionario> funcionarios, BuscarGridControlePontoFuncionarioViewModel busca, int pagina = 1)
        {
            if (!busca.UnidadeId.HasValue &&
                !busca.SupervisorId.HasValue &&
                !busca.FuncionarioId.HasValue &&
                string.IsNullOrEmpty(busca.ColunaUnidade) &&
                string.IsNullOrEmpty(busca.ColunaSupervisor) &&
                string.IsNullOrEmpty(busca.ColunaFuncionario))
            {
                var quantidadeFuncionarios = _funcionarioServico.Contar();
                paginacao    = new PaginacaoGenericaViewModel(quantidadePorPagina, pagina, quantidadeFuncionarios);
                funcionarios = _funcionarioServico.BuscarPorIntervaloOrdernadoPorAlias(paginacao.RegistroInicial, paginacao.RegistrosPorPagina, "Pessoa.Nome").ToList();
            }
            else
            {
                var predicate = PredicateBuilder.True <Funcionario>();

                if (busca.UnidadeId.HasValue)
                {
                    predicate = predicate.And(x => x.Unidade.Id == busca.UnidadeId.Value);
                }

                if (busca.SupervisorId.HasValue)
                {
                    predicate = predicate.And(x => x.Supervisor.Id == busca.SupervisorId.Value);
                }

                if (busca.FuncionarioId.HasValue)
                {
                    predicate = predicate.And(x => x.Id == busca.FuncionarioId.Value);
                }

                if (!string.IsNullOrEmpty(busca.ColunaUnidade))
                {
                    predicate = predicate.And(x => x.Unidade.Nome.ToLower().Contains(busca.ColunaUnidade.ToLower()));
                }

                if (!string.IsNullOrEmpty(busca.ColunaSupervisor))
                {
                    predicate = predicate.And(x => x.Supervisor.Pessoa.Nome.ToLower().Contains(busca.ColunaSupervisor.ToLower()));
                }

                if (!string.IsNullOrEmpty(busca.ColunaFuncionario))
                {
                    predicate = predicate.And(x => x.Pessoa.Nome.ToLower().Contains(busca.ColunaFuncionario.ToLower()));
                }

                funcionarios = _funcionarioServico.BuscarPor(predicate).ToList();
                paginacao    = new PaginacaoGenericaViewModel(quantidadePorPagina, pagina, funcionarios.Count);

                funcionarios = funcionarios.OrderBy(x => x.Pessoa.Nome).ToList();
                funcionarios = funcionarios.ItensDaPagina(paginacao.RegistroInicial, paginacao.RegistrosPorPagina).ToList();
            }
        }