private async Task <IEnumerable <Int64> > ObterUnidadesPerfilPessoa(UsuarioLogadoRequest request) { var perfisUsuario = await ObterPerfilPessoaAsync(request); var unidades = new List <Int64>() { perfisUsuario.Result.UnidadeId }; //Se não for gestor do sistema, deve filtrar if (!perfisUsuario.Result.Perfis.Any(p => p.Perfil == (int)PerfilUsuarioEnum.Gestor)) { //Obtém as unidades em que o usuário é chefe var unidadesChefia = (from perfil in perfisUsuario.Result.Perfis from unidade in perfil.Unidades select unidade).Distinct().ToList(); //Filtra pelas unidades em que é chefe ou o plano é dele unidades.AddRange(unidadesChefia); return(unidades); } return(null); }
public async Task <IApplicationResult <PactoTrabalhoViewModel> > ObterAtualAsync(UsuarioLogadoRequest request) { var result = new ApplicationResult <PactoTrabalhoViewModel>(); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@situacaoRascunho", (int)SituacaoPactoTrabalhoEnum.Rascunho, DbType.Int32, ParameterDirection.Input); parameters.Add("@situacaoEnviadoAceite", (int)SituacaoPactoTrabalhoEnum.EnviadoAceite, DbType.Int32, ParameterDirection.Input); parameters.Add("@situacaoAceito", (int)SituacaoPactoTrabalhoEnum.Aceito, DbType.Int32, ParameterDirection.Input); parameters.Add("@situacaoEmExecucao", (int)SituacaoPactoTrabalhoEnum.EmExecucao, DbType.Int32, ParameterDirection.Input); parameters.Add("@pessoaId", request.UsuarioLogadoId, DbType.Int64, ParameterDirection.Input); using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection"))) { connection.Open(); var dados = await connection.QueryFirstOrDefaultAsync <PactoTrabalhoViewModel>(PactoTrabalhoRawSqls.ObterAtual, parameters); result.Result = dados; connection.Close(); } return(result); }
public async Task <IApplicationResult <DashboardViewModel> > ObterDashboardAsync(UsuarioLogadoRequest request) { var result = new ApplicationResult <DashboardViewModel>() { Result = new DashboardViewModel() }; DynamicParameters parameters = new DynamicParameters(); parameters.Add("@pessoaId", request.UsuarioLogadoId, DbType.Int32, ParameterDirection.Input); using (var connection = new SqlConnection(Configuration.GetConnectionString("DefaultConnection"))) { connection.Open(); var dashboardData = await connection.QueryMultipleAsync(PessoaRawSqls.ObterDashboard, parameters); result.Result.PlanosTrabalho = dashboardData.Read <PlanoTrabalhoViewModel>().ToList(); result.Result.PactosTrabalho = dashboardData.Read <PactoTrabalhoViewModel>().ToList(); result.Result.Solicitacoes = dashboardData.Read <PactoTrabalhoSolicitacaoViewModel>().ToList(); connection.Close(); } return(result); }
public async Task <IActionResult> GetComCatalogoCadastro([FromRoute] UsuarioLogadoRequest request) => await EstruturaOrganizacionalQuery.ObterComCatalogoCadastradoComboAsync(request);
public async Task <IActionResult> GetComPlanoTrabalhoDadosCombo([FromRoute] UsuarioLogadoRequest request) => await EstruturaOrganizacionalQuery.ObterUnidadesComPlanoTrabalhoDadosComboAsync(request);
public async Task <IActionResult> GetPerfilAll([FromQuery] UsuarioLogadoRequest request) => await EstruturaOrganizacionalQuery.ObterPerfilPessoaAsync(request);
public async Task <IActionResult> GetDashboard([FromQuery] UsuarioLogadoRequest request) => await PessoaQuery.ObterDashboardAsync(request);
public async Task <IActionResult> GetHabilitacao([FromQuery] UsuarioLogadoRequest request) => await PlanoTrabalhoQuery.ObterEmHabiliacaoAsync(request);
public async Task <IActionResult> GetAtual([FromQuery] UsuarioLogadoRequest request) => await PlanoTrabalhoQuery.ObterAtualAsync(request);
public async Task <IApplicationResult <PessoaPerfilViewModel> > ObterPerfilPessoaAsync(UsuarioLogadoRequest request) { var result = new ApplicationResult <PessoaPerfilViewModel>(); var dadosPessoa = await PessoaQuery.ObterPorChaveAsync(request.UsuarioLogadoId); result.Result = new PessoaPerfilViewModel() { PessoaId = dadosPessoa.Result.PessoaId, Nome = dadosPessoa.Result.Nome, UnidadeId = dadosPessoa.Result.UnidadeId, Perfis = new List <PessoaPerfilAcessoViewModel>() }; #region Perfil modo avançado var perfilExibirModoAvancado = await DominioQuery.ObterDominioPorClassificacaoAsync(ClassificacaoCatalogoDominioEnum.ModoAvancado); if (perfilExibirModoAvancado.Result.Any(g => Int64.Parse(g.Descricao) == request.UsuarioLogadoId)) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.ModoAvancado }); } #endregion #region Perfis de administração do sistema var gestores = await DominioQuery.ObterDominioPorClassificacaoAsync(ClassificacaoCatalogoDominioEnum.GestorSistema); if (gestores.Result.Any(g => Int64.Parse(g.Descricao) == request.UsuarioLogadoId)) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.Gestor }); } #endregion #region Perfis por unidade if (dadosPessoa.Result.TipoFuncaoUnidadeId == (int)TipoFuncaoUnidadeEnum.COGEP) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.GestorPessoas }); } if (dadosPessoa.Result.TipoFuncaoUnidadeId == (int)TipoFuncaoUnidadeEnum.COGET) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.GestorIndicadores }); } #endregion #region Perfis pelo servidor if (dadosPessoa.Result.TipoFuncaoId.HasValue) { //Se tiver função na unidade dele, tem perfil servidor na unidade acima var unidadeChefe = await UnidadeQuery.ObterPorChaveAsync(dadosPessoa.Result.UnidadeId); if (unidadeChefe.Result.UnidadeIdPai.HasValue) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.Servidor, Unidades = new List <long>() { unidadeChefe.Result.UnidadeIdPai.Value } }); } if (dadosPessoa.Result.Chefe.HasValue && dadosPessoa.Result.Chefe.Value) { //Obtém as unidades subordinadas à que a pessoa é chefe var unidadesSubordinadas = await UnidadeQuery.ObterSubordinadasAsync(dadosPessoa.Result.UnidadeId); var idsUnidades = unidadesSubordinadas.Result.Select(u => Int64.Parse(u.Id)).ToList(); //Adiciona os perfis de chefia result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.ChefeUnidade, Unidades = idsUnidades }); if (dadosPessoa.Result.TipoFuncaoId == (int)TipoFuncaoPessoaEnum.ChefeDepartamento || dadosPessoa.Result.TipoFuncaoId == (int)TipoFuncaoPessoaEnum.CoordenadorGeral) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.CoordenadorGeral, Unidades = idsUnidades }); } if (dadosPessoa.Result.TipoFuncaoId == (int)TipoFuncaoPessoaEnum.Superintendente || dadosPessoa.Result.TipoFuncaoId == (int)TipoFuncaoPessoaEnum.Diretor) { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.Diretor, Unidades = idsUnidades }); } } } else { result.Result.Perfis.Add(new PessoaPerfilAcessoViewModel() { Perfil = (int)PerfilUsuarioEnum.Servidor, Unidades = new List <long>() { dadosPessoa.Result.UnidadeId } }); } #endregion return(result); }
private async Task <IEnumerable <PactoTrabalhoViewModel> > RestringirPactosTrabalhoPerfilUsuario(UsuarioLogadoRequest request, IEnumerable <PactoTrabalhoViewModel> items) { var perfisUsuario = await ObterPerfilPessoaAsync(request); //Se não for gestor do sistema, deve filtrar if (!perfisUsuario.Result.Perfis.Any(p => p.Perfil == (int)PerfilUsuarioEnum.Gestor)) { //Obtém as unidades em que o usuário é chefe var unidadesChefia = (from perfil in perfisUsuario.Result.Perfis from unidade in perfil.Unidades select unidade).Distinct().ToList(); //Filtra pelas unidades em que é chefe ou o plano é dele items = items.Where(p => unidadesChefia.Any(uu => uu == p.UnidadeId) || p.PessoaId == perfisUsuario.Result.PessoaId); } return(items); }
public async Task <IApplicationResult <IEnumerable <DadosComboViewModel> > > ObterPessoasComPactoTrabalhoDadosComboAsync(UsuarioLogadoRequest request) { var result = new ApplicationResult <IEnumerable <DadosComboViewModel> >(); //Obtém as pessoas var dados = await PessoaQuery.ObterComPactoTrabalhoAsync(); //Filtra os itens de acordo com o perfil do usuário var itens = await RestringirPessoasPerfilUsuario(request, dados.Result); //Converte de para DadosComboViewModel result.Result = itens.Select(u => new DadosComboViewModel() { Id = u.PessoaId.ToString(), Descricao = u.Nome }); return(result); }
private async Task <IEnumerable <UnidadeViewModel> > RestringirUnidadesPerfilUsuario(UsuarioLogadoRequest request, IEnumerable <UnidadeViewModel> items, Boolean incluirUnidadePaiSeChefe) { var retorno = items.ToList(); var perfisUsuario = await ObterPerfilPessoaAsync(request); //Se não for gestor do sistema, deve filtrar if (!perfisUsuario.Result.Perfis.Any(p => p.Perfil == (int)PerfilUsuarioEnum.Gestor)) { //Obtém as unidades em que o usuário é chefe var unidadesChefia = (from perfil in perfisUsuario.Result.Perfis where perfil.Perfil == (int)PerfilUsuarioEnum.ChefeUnidade || perfil.Perfil == (int)PerfilUsuarioEnum.CoordenadorGeral || perfil.Perfil == (int)PerfilUsuarioEnum.Diretor from unidade in perfil.Unidades select unidade).Distinct().ToList(); //Filtra pelas unidades em que é chefe ou o plano é dele retorno = items.Where(p => unidadesChefia.Any(uu => uu == p.UnidadeId) || p.UnidadeId == perfisUsuario.Result.UnidadeId).ToList(); //Se for para incluir a unidade pai se o usuário for chefe, encontra a unidade e adiciona if (incluirUnidadePaiSeChefe && unidadesChefia.Any()) { var unidadeChefe = items.FirstOrDefault(u => u.UnidadeId == perfisUsuario.Result.UnidadeId); var unidadePaiChefe = items.FirstOrDefault(u => u.UnidadeId == unidadeChefe.UnidadeIdPai); if (unidadePaiChefe != null) { retorno.Add(unidadePaiChefe); } } } return(retorno); }
public async Task <IApplicationResult <IEnumerable <DadosComboViewModel> > > ObterComCatalogoCadastradoComboAsync(UsuarioLogadoRequest request) { var result = new ApplicationResult <IEnumerable <DadosComboViewModel> >(); //Obtém as unidades var dados = await UnidadeQuery.ObterComCatalogoCadastradoComboAsync(); //Filtra as unidades de acordo com o perfil do usuário var unidades = await RestringirUnidadesPerfilUsuario(request, dados.Result, false); //Converte de UnidadeViewModel para DadosComboViewModel result.Result = unidades.Select(u => new DadosComboViewModel() { Id = u.UnidadeId.ToString(), Descricao = u.SiglaCompleta }); return(result); }