public object GetAcessos([FromUri] SimularAcessoGridFiltro filtro) { try { var escopo = new SimularAcessoEscopo(); var result = escopo.ObterAcessos(filtro, GerenciadorSessao.UsuarioLogado.UsuarioId); return(new { result = result, mensagens = !escopo.ExistemErros ? escopo.MensagensSucesso : escopo.MensagensErro }); } catch (Exception ex) { return(new { mensagens = ex.CriarErroResposta() }); } }
public GridDados <SimularAcessoGridDados> ObterAcessos(SimularAcessoGridFiltro filtro, int usuarioId) { var ordenacao = string.IsNullOrEmpty(filtro.Ordenacao) ? "Municipio, UnidadeEscolar, NomeCompleto ASC" : string.Format("{0} {1}", filtro.Ordenacao, filtro.Orientacao.ToUpper()); var usuarios = SimularAcessoNegocio.ObterUsuarios(PortalUsuariosSet); #region Filtro if (!string.IsNullOrWhiteSpace(filtro.Busca)) { switch (filtro.FiltroId) { case (int)EFiltroSimularAcesso.Login: { usuarios = usuarios.Where(x => x.Login.Contains(filtro.Busca)); break; } case (int)EFiltroSimularAcesso.Nome: { usuarios = usuarios.Where(x => x.NomeUsuario.Contains(filtro.Busca)); break; } case (int)EFiltroSimularAcesso.Email: { usuarios = usuarios.Where(x => x.Email.Contains(filtro.Busca)); break; } case (int)EFiltroSimularAcesso.Municipio: { usuarios = usuarios.Where(x => x.UnidadeEscolar.Municipio.NomeMunicipio.Contains(filtro.Busca)); break; } case (int)EFiltroSimularAcesso.UnidadeEscolar: { usuarios = usuarios.Where(x => x.UnidadeEscolar.Nome.Contains(filtro.Busca)); break; } case (int)EFiltroSimularAcesso.Cpf: { var Cpf = Recursos.LimparTexto(filtro.Busca); usuarios = usuarios.Where(x => x.Cpf.Contains(Cpf)); break; } default: { break; } } } #endregion var result = usuarios.Select(x => new SimularAcessoGridDados { Cpf = x.Cpf, Dominio = x.Dominio, Email = x.Email, GsiUsuarioId = x.GSIUsuarioId, Login = x.Login, Municipio = x.UnidadeEscolar.Municipio.NomeMunicipio, UnidadeEscolar = x.UnidadeEscolar.Nome, NomeCompleto = x.NomeUsuario }); return(new GridDados <SimularAcessoGridDados> { NumeroRegistros = result.Count(), TamanhoPagina = filtro.TamanhoPagina, Lista = result.OrderBy(ordenacao) .Skip(filtro.TamanhoPagina * (filtro.Pagina - 1)) .Take(filtro.TamanhoPagina) }); }