示例#1
0
        public IQueryable <SolucaoEducacional> ObterListaSolucaoEducacionalPorCategoriaGestor(IEnumerable <int> categoriasConteudo)
        {
            var usuario = new BMUsuario().ObterUsuarioLogado();

            var solucoes = ObterTodos().Where(x => categoriasConteudo.Contains(x.CategoriaConteudo.ID));

            if (usuario.IsGestor())
            {
                FiltrarPermissaoVisualizacao(ref solucoes, usuario.UF.ID);
            }

            return(solucoes);
        }
示例#2
0
        // Pega todos para gestor ou todos caso não seja
        public IQueryable <SolucaoEducacional> ObterTodosPorGestor(bool?exibirInativos = null)
        {
            // Gestores só podem ver soluções educacionais do seu estado
            var usuario = new BMUsuario().ObterUsuarioLogado();

            bool apenasAtivos = exibirInativos != null && exibirInativos == true ? false : !usuario.IsAdministrador();

            // Caso seja administrador traz todos ativos ou não
            var retorno = ObterTodos(apenasAtivos);

            if (usuario.IsGestor())
            {
                FiltrarPermissaoVisualizacao(ref retorno, usuario.UF.ID);
            }

            return(retorno);
        }
示例#3
0
        public void VerificarConsistenciaUk(SolucaoEducacional pSolucaoEducacional)
        {
            if (string.IsNullOrWhiteSpace(pSolucaoEducacional.Nome))
            {
                throw new AcademicoException("Nome da Solução Educacional não pode ser vazio");
            }

            var usuarioLogado = new BMUsuario().ObterUsuarioLogado();

            if (pSolucaoEducacional.UFGestor == null || !usuarioLogado.IsGestor())
            {
                var solucoes =
                    ObterPorNome(pSolucaoEducacional.Nome)
                    .Where(
                        s =>
                        s.Fornecedor != null && pSolucaoEducacional.Fornecedor != null &&
                        s.Fornecedor.ID == pSolucaoEducacional.Fornecedor.ID &&
                        s.Ativo &&
                        pSolucaoEducacional.ID != s.ID);

                if (solucoes.Any())
                {
                    throw new AcademicoException("Nome da Solução Educacional já cadastrado para este fornecedor");
                }
            }
            else
            {
                var solucoes =
                    ObterPorNome(pSolucaoEducacional.Nome).AsEnumerable()
                    .Where(
                        s =>
                        s.Fornecedor.ID == pSolucaoEducacional.Fornecedor.ID &&
                        s.Fornecedor != null &&
                        pSolucaoEducacional.Fornecedor != null &&
                        s.UFGestor != null && !s.UFGestor.PermiteSesMesmoNome() &&
                        s.Ativo &&
                        pSolucaoEducacional.ID != s.ID).AsQueryable();

                FiltrarPermissaoVisualizacao(ref solucoes, usuarioLogado.ID);

                if (solucoes.Any())
                {
                    throw new AcademicoException("Nome da Solução Educacional já cadastrado para esta UF e este fornecedor");
                }
            }
        }