public int ObterTotalPermissaoDoNucleoPorFiltro(int idNucleo, enumPrazoEncaminhamentoDemanda status) { var query = ObterTodosIQueryable(); // Enxugando query com select query = query.Select(x => new EtapaResposta { Ativo = x.Ativo, Status = x.Status, PrazoEncaminhamento = x.PrazoEncaminhamento, DataPreenchimento = x.DataPreenchimento, DataAlteracao = x.DataAlteracao, Etapa = x.Etapa, PermissoesNucleoEtapaResposta = x.PermissoesNucleoEtapaResposta }); var result = query.Where(x => x.Ativo && x.PermissoesNucleoEtapaResposta.Any(y => y.EtapaPermissaoNucleo.HierarquiaNucleoUsuario.HierarquiaNucleo.ID == idNucleo)).ToList(); if (status != enumPrazoEncaminhamentoDemanda.Encerrada) { result = result.Where(x => x.Status == (int)enumStatusEtapaResposta.Aguardando && (x.PrazoEncaminhamento.HasValue || x.DataPreenchimento.HasValue || x.DataAlteracao.HasValue) && x.ObterStatusEncaminhamento(x.PrazoEncaminhamento.HasValue ? x.PrazoEncaminhamento.Value : x.Etapa.ObterPrazoParaEncaminhamentoDaDemanda(x.DataPreenchimento.HasValue ? x.DataPreenchimento.Value : x.DataAlteracao.Value)) == status).ToList(); } else { result = result.Where(x => x.Status != (int)enumStatusEtapaResposta.Aguardando).ToList(); } return(result.Count()); }
private void PreencherEtapas(int Idnucleo, enumPrazoEncaminhamentoDemanda status, int pagina = 0) { var etapas = new ManterEtapaResposta().ObterDTOPorPermissaoDoNucleoPorFiltro(Idnucleo, status, _demandasPorPagina, pagina); rptDemandas.DataSource = etapas; rptDemandas.DataBind(); }
private void DefinirCor(enumPrazoEncaminhamentoDemanda status) { switch (status) { case enumPrazoEncaminhamentoDemanda.NoPrazo: mHeader.Attributes["class"] = "no-prazo-modal"; break; case enumPrazoEncaminhamentoDemanda.AExpirar: mHeader.Attributes["class"] = "expirar-modal"; break; case enumPrazoEncaminhamentoDemanda.ForaDoPrazo: mHeader.Attributes["class"] = "vencida-modal"; break; case enumPrazoEncaminhamentoDemanda.Encerrada: mHeader.Attributes["class"] = "encerrada-modal"; break; default: break; } }
public IEnumerable <DTOEtapaNucleo> ObterDTOPorPermissaoDoNucleoPorFiltro(int idNucleo, enumPrazoEncaminhamentoDemanda status, int limit, int page) { //var query = ObterTodos(); var query = ObterTodosIQueryable(); var lista = query.Where(x => x.Ativo && x.PermissoesNucleoEtapaResposta.Any(y => y.EtapaPermissaoNucleo.HierarquiaNucleoUsuario.HierarquiaNucleo.ID == idNucleo)).ToList(); IEnumerable <EtapaResposta> result; if (status != enumPrazoEncaminhamentoDemanda.Encerrada) { result = lista.Where(x => x.Status == (int)enumStatusEtapaResposta.Aguardando && (x.PrazoEncaminhamento.HasValue || x.DataPreenchimento.HasValue || x.DataAlteracao.HasValue) && x.ObterStatusEncaminhamento(x.PrazoEncaminhamento.HasValue ? x.PrazoEncaminhamento.Value : x.Etapa.ObterPrazoParaEncaminhamentoDaDemanda((x.DataPreenchimento.HasValue ? x.DataPreenchimento.Value : x.DataAlteracao.Value))) == status) .ToList(); } else { result = lista.Where(x => x.Status != (int)enumStatusEtapaResposta.Aguardando).ToList(); } if (limit > 0) { result = result.Skip(page * limit).Take(limit); } var etapas = result; return(etapas.Select(x => new DTOEtapaNucleo { IdEtapaResposta = x.ID, IdProcessoResposta = x.ProcessoResposta.ID, NomeEtapa = x.Etapa.Nome, NomeProcessoResposta = x.ProcessoResposta.Processo.Nome, Prazo = x.PrazoEncaminhamento != null ? x.PrazoEncaminhamento.Value : (DateTime?)null, Responsaveis = x.ObterAnalistas(new List <UsuarioCargo>(), new Usuario()).Select(u => u.Nome).ToList(), Etapas = ObterDTOEtapaNucleoOdernadoPorIdEtapaResposta(x.ProcessoResposta), Demandante = x.ProcessoResposta.Usuario.Nome })); }