コード例 #1
0
ファイル: Sincroniar.aspx.cs プロジェクト: lincoln-alves/sgus
        protected void btnSincronizarSE_Click(object sender, EventArgs e)
        {
            var manterSe = new ManterSolucaoEducacional();
            var listaSe  =
                manterSe.ObterTodosSolucaoEducacional()
                .Where(
                    r =>
                    r.ListaAreasTematicas.Any() &&
                    r.ListaOferta.Any(
                        p =>
                        p.DataInicioInscricoes.HasValue &&
                        p.DataInicioInscricoes.Value.Year == DateTime.Now.Year))
                .ToList();

            foreach (var item in listaSe)
            {
                try
                {
                    manterSe.AlterarSolucaoEducacional(item, ConfigurationManager.AppSettings["portal_url_node_id"]);
                }
                catch (Exception)
                {
                }
            }
            WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                         "Sincronia Realizada: " + listaSe.Count + " registros");
        }
コード例 #2
0
        private IQueryable <classes.SolucaoEducacional> ConsultarSolucoesEducacionais()
        {
            int id;

            IQueryable <classes.SolucaoEducacional> listaSolucaoEducacional;

            _manterSolucaoEducacional = new ManterSolucaoEducacional();

            if (int.TryParse(txtNome.Text, out id))
            {
                var idSolucaoEducacional = string.IsNullOrEmpty(txtNome.Text) ? 0 : int.Parse(txtNome.Text);

                listaSolucaoEducacional = _manterSolucaoEducacional.ObterTodosPorGestor(true);

                if (idSolucaoEducacional != 0)
                {
                    listaSolucaoEducacional = listaSolucaoEducacional.Where(x => x.ID == idSolucaoEducacional);
                }
            }
            else
            {
                var nomeSolucaoEducacional = txtNome.Text.Trim().ToLower();

                listaSolucaoEducacional =
                    _manterSolucaoEducacional.ObterTodosPorGestor(true);

                if (!string.IsNullOrWhiteSpace(nomeSolucaoEducacional))
                {
                    listaSolucaoEducacional = listaSolucaoEducacional
                                              .Where(x => x.Nome.Trim().ToLower().Contains(nomeSolucaoEducacional));
                }
            }
            return(listaSolucaoEducacional);
        }
コード例 #3
0
        private void IniciarThreadGeral()
        {
            var manterSe              = new ManterSolucaoEducacional();
            var manterOferta          = new ManterOferta();
            var manterPr              = new ManterPrograma();
            var manterCp              = new ManterCapacitacao();
            var manterTr              = new ManterTrilha();
            var bmConfiguracaoSistema = new BMConfiguracaoSistema();
            var bmLogSincronia        = new BMLogSincronia();
            var usuarioLogado         = new ManterUsuario().ObterUsuarioLogado();

            var somenteNaoSincronizados = ckbSomenteNaoSincronizados.Checked;


            var thread = new Thread(() =>
            {
                EnviarSolucoes(manterSe, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarOfertas(manterOferta, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarProgramasCapacitacoes(manterPr, manterCp, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarTrilhas(manterTr, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
            })
            {
                IsBackground = true,
                Name         = Guid.NewGuid().ToString()
            };

            thread.Start();
        }
コード例 #4
0
        public void AtualizarComboSolucaoEducacional(object sender, EventArgs e)
        {
            if (ViewState["buscouCategorias"] != null && (bool)ViewState["buscouCategorias"])
            {
                var categoria = ucCategorias1.IdsCategoriasMarcadas.ToList();

                var manterSe = new ManterSolucaoEducacional();

                var solucoes = ucNacionalizarRelatorio.IsNacionalizado
                    ? manterSe.ObterTodosPorGestor()
                    : manterSe.ObterTodosSolucaoEducacional();

                if (categoria.Any())
                {
                    solucoes =
                        solucoes.Where(s => s.CategoriaConteudo != null && categoria.Contains(s.CategoriaConteudo.ID));
                }

                ViewState["_SE"] = Helpers.Util.ObterListaAutocomplete(solucoes);


                // Limpar SE, oferta e turma selecionadas.
                txtSolucaoEducacional.Text = "";

                txtOferta.Text       = "";
                ViewState["_Oferta"] = null;

                txtTurma.Text       = "";
                ViewState["_Turma"] = null;

                ViewState["buscouCategorias"] = null;
            }
        }
コード例 #5
0
        private void AdicionarOuRemoverSolucaoEducacional(Programa programaEdicao)
        {
            var listaSelecionados = ucSolucaoEducacional1.ConverterListItemCollectionEmListaTipada(ucSolucaoEducacional1.ObterTodasSolucoesEducacionais) ?? new List <classes.SolucaoEducacional>();

            if (listaSelecionados.Count == 0)
            {
                return;
            }
            var listaIdsSelecionados = listaSelecionados.Select(x => x.ID).ToList();
            var listaDiferenca       = programaEdicao.ListaSolucaoEducacional.Where(x => !listaIdsSelecionados.Contains(x.SolucaoEducacional.ID)).Select(x => x.SolucaoEducacional).ToList();
            var listaIdsDiferenca    = listaDiferenca.Select(x => x.ID).ToList();

            foreach (var item in listaIdsDiferenca.Select(id => programaEdicao.ListaSolucaoEducacional.FirstOrDefault(x => x.SolucaoEducacional.ID == id)).Where(item => item != null))
            {
                programaEdicao.ListaSolucaoEducacional.Remove(item);
            }
            var manterUsuarioLogado = new ManterUsuario();
            var manterSe            = new ManterSolucaoEducacional();
            var usuarioLogado       = manterUsuarioLogado.ObterUsuarioLogado();

            foreach (var id in listaIdsSelecionados)
            {
                if (!programaEdicao.ListaSolucaoEducacional.Any(x => x.SolucaoEducacional.ID == id))
                {
                    programaEdicao.ListaSolucaoEducacional.Add(new ProgramaSolucaoEducacional
                    {
                        Programa           = programaEdicao,
                        SolucaoEducacional = manterSe.ObterSolucaoEducacionalPorId(id),
                        Auditoria          = usuarioLogado != null ? new Auditoria(usuarioLogado.CPF) : new Auditoria()
                    });
                }
            }
        }
コード例 #6
0
        protected void ddlSolucaoEducacional_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            cblNivelOcupacional.Items.Clear();
            cblSolucaoEducacional.Items.Clear();
            ddlNivelOcupacional.Items.Clear();

            if (ddlSolucaoEducacional.SelectedIndex <= 0)
            {
                return;
            }

            var solucaoEducacional =
                new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(
                    int.Parse(ddlSolucaoEducacional.SelectedValue));

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

            if (usuarioLogado.IsGestor() && (solucaoEducacional.UFGestor == null ||
                                             solucaoEducacional.UFGestor.ID != usuarioLogado.UF.ID))
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Solução Educacional inválida.");
                return;
            }

            var niveisOcupacionais =
                solucaoEducacional.ListaSolucaoEducacionalObrigatoria.Select(x => x.NivelOcupacional)
                .OrderBy(x => x.Nome)
                .Distinct()
                .ToList();

            WebFormHelper.PreencherLista(niveisOcupacionais, cblNivelOcupacional);

            btnMatricular.Visible = true;
        }
コード例 #7
0
        private void MatricularNovoUsuarioEmCursosObrigatorios(Usuario usuario)
        {
            try
            {
                var listaSolucoesEducacionais =
                    new ManterSolucaoEducacional().ObterObrigatorios(usuario.NivelOcupacional)
                    .Select(x => x.SolucaoEducacional);

                foreach (var solucaoEducacional in listaSolucoesEducacionais)
                {
                    //VER SE O USUÁRIO JÁ ESTÁ MATRICULADO
                    if (usuario.ListaMatriculaOferta.All(x => x.Oferta.SolucaoEducacional != solucaoEducacional))
                    {
                        var oferta =
                            solucaoEducacional.ListaOferta.FirstOrDefault(
                                x =>
                                Helpers.Util.ObterVigente(x.DataInicioInscricoes, x.DataFimInscricoes) &&
                                x.ListaTurma.Any(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)));

                        var novaMatriculaOferta = new MatriculaOferta
                        {
                            Auditoria       = new Auditoria(new ManterUsuario().ObterUsuarioLogado().CPF),
                            Oferta          = oferta,
                            Usuario         = usuario,
                            StatusMatricula = enumStatusMatricula.Inscrito,
                            UF = usuario.UF,
                            NivelOcupacional = usuario.NivelOcupacional,
                            DataSolicitacao  = DateTime.Today
                        };

                        new ManterMatriculaOferta().Salvar(novaMatriculaOferta);

                        if (oferta == null)
                        {
                            continue;
                        }

                        var novaMatriculaTurma = new MatriculaTurma
                        {
                            Auditoria = new Auditoria(new ManterUsuario().ObterUsuarioLogado().CPF),
                            Turma     =
                                oferta.ListaTurma.FirstOrDefault(
                                    t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)),
                            MatriculaOferta = novaMatriculaOferta,
                            DataMatricula   = DateTime.Today
                        };

                        novaMatriculaTurma.DataLimite = novaMatriculaTurma.CalcularDataLimite();

                        new ManterMatriculaTurma().Salvar(novaMatriculaTurma);
                    }
                }
            }
            catch (Exception)
            {
                // ignored
            }
        }
コード例 #8
0
        private void ObterSolucoesEducacionaisDaCategoria(int idCategoriaSolucaoEducacional)
        {
            ManterSolucaoEducacional   manterSolucaoEducacional = new ManterSolucaoEducacional();
            IList <SolucaoEducacional> ListaSolucaoEducacional  = manterSolucaoEducacional.ObterListaSolucaoEducacionalPorCategoria(idCategoriaSolucaoEducacional);

            ListaSolucaoEducacional = ListaSolucaoEducacional.OrderBy(x => x.Nome).ToList();

            WebFormHelper.PreencherLista(ListaSolucaoEducacional, this.ddlSolucao, false, false);
        }
コード例 #9
0
        private void BuscarSolucoesJson()
        {
            // Buscar todas a SEs e remover as que todas as ofertas já possuam todas as turmas selecionadas.
            var solucoes =
                new ManterSolucaoEducacional().ObterTodosSolucaoEducacional().Where(x => x.ListaOferta.Any());

            ViewState["_Solucao"] =
                Helpers.Util.ObterListaAutocomplete(solucoes);
        }
コード例 #10
0
        public IQueryable <SolucaoEducacional> ListaSolucaoEducacionalPorCategorias(List <int> categorias)
        {
            var lista = new ManterSolucaoEducacional().ObterTodosSolucaoEducacional();

            if (categorias != null && categorias.Any())
            {
                lista = lista.Where(x => categorias.Contains(x.CategoriaConteudo.ID));
            }

            return(lista);
        }
コード例 #11
0
        public void ValidarPesquisaPorSolucaoEducacional(int idSolucao)
        {
            classes.SolucaoEducacional se;
            se = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(idSolucao);

            if (se == null)
            {
                txtSolucaoEducacional.Text = "";
                throw new AcademicoException("Selecione uma Solução Educacional Válida.");
            }
        }
コード例 #12
0
        public void AtualizarComboSolucaoEducacional(object sender, EventArgs e)
        {
            var categoria = ucCategoriasConteudo.IdsCategoriasMarcadas.ToList();
            var manterSe  = new ManterSolucaoEducacional();
            var solucoes  = categoria.Any() ? manterSe.ObterTodosSolucaoEducacional().Where(s => s.CategoriaConteudo != null && categoria.Contains(s.CategoriaConteudo.ID)) :
                            manterSe.ObterTodosSolucaoEducacional();

            ViewState["_SE"] = Helpers.Util.ObterListaAutocomplete(solucoes);

            // Limpar SE, oferta e turma selecionadas.
            //txtSolucaoEducacional.Text = "";
        }
コード例 #13
0
        protected void ddlSolucao_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var solucao =
                new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(int.Parse(ddlSolucao.SelectedValue));

            if (solucao == null)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Solução Educacional inválida");
                return;
            }
            txtCargaHoraria.Text = solucao.CargaHoraria.ToString();

            WebFormHelper.SetarValorNaCombo(solucao.FormaAquisicao.ID.ToString(), ddlFormaAquisicao, true);
        }
コード例 #14
0
        protected void txtSolucaoEducacional_OnTextChanged(object sender, EventArgs e)
        {
            int idSolucao;

            int.TryParse(txtSolucaoEducacional.Text, out idSolucao);

            var idSolucaoEducacional = string.IsNullOrWhiteSpace(txtSolucaoEducacional.Text) ? 0 : idSolucao;

            var se = new ManterSolucaoEducacional().ObterTodosPorGestor().FirstOrDefault(s => idSolucaoEducacional == 0 || s.ID == idSolucaoEducacional);

            ViewState["_Oferta"] = se == null ? null : Helpers.Util.ObterListaAutocomplete(se.ListaOferta.AsQueryable());

            txtOferta.Text = "";
        }
コード例 #15
0
        private void ObterSolucaoEducacional()
        {
            var manterSolucaoEducacional = new ManterSolucaoEducacional();
            var listaSolucaoEducacional  = manterSolucaoEducacional.ObterTodosSolucaoEducacional().ToList();

            listaSolucaoEducacional.Insert(0, new classes.SolucaoEducacional {
                Nome = "::Selecione::"
            });

            ddlSolucaoEducacional.DataSource     = listaSolucaoEducacional;
            ddlSolucaoEducacional.DataValueField = "ID";
            ddlSolucaoEducacional.DataTextField  = "Nome";
            ddlSolucaoEducacional.DataBind();
        }
コード例 #16
0
        private void PreencherGridTurma()
        {
            try
            {
                int idSolucao = 0;

                if (!string.IsNullOrWhiteSpace(txtSolucaoEducacional.Text))
                {
                    int.TryParse(txtSolucaoEducacional.Text, out idSolucao);
                    ValidarPesquisaPorSolucaoEducacional(idSolucao);
                }

                var manterSe = new ManterSolucaoEducacional();

                var ses = manterSe.ObterTodosPorGestor().Where(s => idSolucao == 0 || s.ID == idSolucao);

                if (ses.Any())
                {
                    var idOferta = string.IsNullOrWhiteSpace(txtOferta.Text) ? 0 : int.Parse(txtOferta.Text);

                    var ofertas = ses.SelectMany(s => s.ListaOferta).Where(x => idOferta == 0 || x.ID == idOferta);

                    if (ofertas.Any())
                    {
                        var turmas = ofertas.SelectMany(x => x.ListaTurma)
                                     .Where(
                            x => string.IsNullOrWhiteSpace(txtNome.Text) || x.Nome.ToLower().Contains(txtNome.Text.Trim().ToLower()))
                                     .ToList();

                        if (turmas.Any())
                        {
                            WebFormHelper.PreencherGrid(turmas, dgvTurma);
                            pnlTurma.Visible = true;
                        }
                        else
                        {
                            pnlTurma.Visible = false;
                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "Nenhuma informação encontrada");
                        }
                    }
                }
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
コード例 #17
0
        protected void rblEfetuar_SelectedIndexChanged(object sender, EventArgs e)
        {
            cblNivelOcupacional.Items.Clear();
            cblSolucaoEducacional.Items.Clear();
            ddlNivelOcupacional.Items.Clear();
            ddlSolucaoEducacional.Items.Clear();

            switch (rblEfetuar.SelectedValue)
            {
            case "SolucaoEducacional":
                divSolucaoEducacional.Visible = true;
                divNivelOcupacional.Visible   = false;

                var solucoes = new ManterSolucaoEducacional().ObterObrigatorios()
                               .Select(x => x.SolucaoEducacional)
                               .Distinct()
                               .ToList();

                WebFormHelper.PreencherLista(
                    solucoes,
                    ddlSolucaoEducacional, true);

                break;

            case "NivelOcupacional":
                divNivelOcupacional.Visible   = true;
                divSolucaoEducacional.Visible = false;

                var niveis = new ManterSolucaoEducacional().ObterObrigatorios()
                             .Select(x => x.NivelOcupacional)
                             .Distinct()
                             .ToList();

                WebFormHelper.PreencherLista(
                    niveis,
                    ddlNivelOcupacional, true);

                break;

            default:
                divSolucaoEducacional.Visible = false;
                divNivelOcupacional.Visible   = false;
                break;
            }
        }
コード例 #18
0
        private void IniciarThreadSolucoes()
        {
            var manterSe = new ManterSolucaoEducacional();
            var bmConfiguracaoSistema = new BMConfiguracaoSistema();
            var bmLogSincronia        = new BMLogSincronia();
            var usuarioLogado         = new ManterUsuario().ObterUsuarioLogado();

            var somenteNaoSincronizados = ckbSomenteNaoSincronizados.Checked;

            var thread =
                new Thread(
                    () => EnviarSolucoes(manterSe, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados))
            {
                IsBackground = true,
                Name         = Guid.NewGuid().ToString()
            };

            thread.Start();
        }
コード例 #19
0
        public dynamic MatriculaSolucaoEducacional(UserIdentity usuarioLogado, int idSolucaoEducacional, int ofertaId, int itemTrilhaId)
        {
            var se = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(idSolucaoEducacional);

            if (se == null)
            {
                throw new ResponseException(enumResponseStatusCode.SolucaoEducacionalNaoEncontrada, "Solução Educacional não encontrada");
            }

            var oferta = se.ListaOferta.Where(x => x.ID == ofertaId).FirstOrDefault();

            if (oferta == null)
            {
                throw new ResponseException(enumResponseStatusCode.OfertaNaoEncontrada, "Oferta não encontrada");
            }

            var itemTrilha = new ManterItemTrilha().ObterItemTrilhaPorID(itemTrilhaId);

            if (itemTrilha == null)
            {
                throw new ResponseException(enumResponseStatusCode.TurmaNaoEncontrada, "Solução não encontrada");
            }

            try
            {
                new ManterSolucaoEducacionalService().MatricularSolucaoEducacional(usuarioLogado.Usuario.ID, se.ID,
                                                                                   oferta.ID, null,
                                                                                   null, usuarioLogado.Usuario.CPF, null, itemTrilha);
            }
            catch (AcademicoException ex)
            {
                throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioSgus, ex.Message);
            }
            catch
            {
                throw new ResponseException(enumResponseStatusCode.ErroRegraNegocioSgus,
                                            "Não foi possível realizar a matrícula na turma");
            }

            return(true);
        }
コード例 #20
0
        private void SetarListaComStatusDeMatricula(classes.MatriculaOferta matriculaOferta)
        {
            if ((ListaStatusMatricula == null || !ListaStatusMatricula.Any()))
            {
                var categoriaConteudo = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(matriculaOferta.Oferta.SolucaoEducacional.ID).CategoriaConteudo;

                var listaStatusMatricula = (new ManterStatusMatricula()).ObterStatusMatriculaPorCategoriaConteudo(categoriaConteudo)
                                           .Where(p => p.ID != (int)enumStatusMatricula.Reprovado).ToList();

                var manterStatusMatricula = new ManterStatusMatricula();

                var status = manterStatusMatricula.ObterStatusMatriculaPorCategoriaConteudo(categoriaConteudo)
                             .Where(p => p.ID != (int)enumStatusMatricula.Reprovado);

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

                // Filtrar Status pela visualização do usuário.
                status = status.Where(x => x.PermiteVisualizacao(usuarioLogado));

                ListaStatusMatricula = status.ToList();
            }
        }
コード例 #21
0
        private void PreencherCategoriasPreRequisito(classes.SolucaoEducacional solucaoEducacional)
        {
            IList <int> listaCategorias = new List <int>();

            foreach (var item in solucaoEducacional.ListaPreRequisito)
            {
                var idCategoriaConteudo = item.PreRequisito.CategoriaConteudo.ID;
                if (listaCategorias.IndexOf(idCategoriaConteudo) < 0)
                {
                    listaCategorias.Add(idCategoriaConteudo);
                }
            }
            pnlSolucaoEducacionalPreRequisito.Visible = true;
            var solucoesListaGeral =
                new ManterSolucaoEducacional().ObterListaSolucaoEducacionalPorCategoria(listaCategorias);
            var solucoes = new List <classes.SolucaoEducacional>();

            foreach (var item in solucoesListaGeral)
            {
                if (ExisteNaLista(item, solucaoEducacional.ListaPreRequisito.ToList()))
                {
                    solucoes.Add(item);
                }
            }
            WebFormHelper.PreencherGrid(solucoes, gvSolucaoEducacionalPreRequisito);

            for (int i = 0; i < gvSolucaoEducacionalPreRequisito.Rows.Count; i++)
            {
                int      idSolucaoEducacional             = int.Parse(gvSolucaoEducacionalPreRequisito.DataKeys[i].Value.ToString());
                CheckBox cbSolucaoEducacionalPreRequisito =
                    (CheckBox)gvSolucaoEducacionalPreRequisito.Rows[i].FindControl("cbSolucaoEducacionalPreRequisito");

                if (cbSolucaoEducacionalPreRequisito != null)
                {
                    cbSolucaoEducacionalPreRequisito.Checked =
                        solucaoEducacional.ListaPreRequisito.Any(x => x.PreRequisito.ID == idSolucaoEducacional);
                }
            }
        }
コード例 #22
0
        private void EnviarSolucoes(ManterSolucaoEducacional manterSe, BMConfiguracaoSistema bmConfiguracaoSistema,
                                    BMLogSincronia bmLogSincronia, Usuario usuarioLogado, bool somenteNaoSincronizados)
        {
            try
            {
                var solucoes =
                    manterSe.ObterTodosSolucaoEducacional()
                    .Where(
                        x =>
                        x.ListaAreasTematicas.Any() &&
                        x.FormaAquisicao != null &&
                        x.FormaAquisicao.EnviarPortal &&
                        (somenteNaoSincronizados == false || !x.IdNodePortal.HasValue)).ToList();

                foreach (var solucao in solucoes)
                {
                    try
                    {
                        if (somenteNaoSincronizados && solucao.IdNodePortal.HasValue)
                        {
                            continue;
                        }

                        solucao.IdNodePortal = null;

                        manterSe.AtualizarNodeIdDrupal(solucao, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                    }
                    catch (Exception)
                    {
                        // ignored;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #23
0
        protected void dgvSolucaoEducacional_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("excluir"))
            {
                try
                {
                    _manterSolucaoEducacional = new ManterSolucaoEducacional();
                    int idSolucaoEducacional = int.Parse(e.CommandArgument.ToString());
                    _manterSolucaoEducacional.ExcluirSolucaoEducacional(idSolucaoEducacional);
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Registro excluído com sucesso!",
                                                 "ListarSolucaoEducacional.aspx");
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
            else if (e.CommandName.Equals("editar"))
            {
                var idSolucaoEducacional = int.Parse(e.CommandArgument.ToString());

                Response.Redirect("EdicaoSolucaoEducacional.aspx?Id=" + idSolucaoEducacional, false);
            }
        }
コード例 #24
0
        protected void ddlNivelOcupacional_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            cblNivelOcupacional.Items.Clear();
            cblSolucaoEducacional.Items.Clear();
            ddlSolucaoEducacional.Items.Clear();

            if (ddlNivelOcupacional.SelectedIndex <= 0)
            {
                return;
            }

            var nivelSelecionado =
                new ManterNivelOcupacional().ObterNivelOcupacionalPorID(int.Parse(ddlNivelOcupacional.SelectedValue));

            var solucoesEducacionais =
                new ManterSolucaoEducacional().ObterObrigatorios(nivelSelecionado)
                .Select(x => x.SolucaoEducacional)
                .Distinct()
                .ToList();

            WebFormHelper.PreencherLista(solucoesEducacionais, cblSolucaoEducacional);

            btnMatricular.Visible = true;
        }
コード例 #25
0
        protected void btnMatricular_Click(object sender, EventArgs e)
        {
            var idsSolucaoEducacionalSelecionados = new List <int>();
            var idsNivelOcupacionalSelecionados   = new List <int>();

            switch (rblEfetuar.SelectedValue)
            {
            case "SolucaoEducacional":
                idsSolucaoEducacionalSelecionados.Add(int.Parse(ddlSolucaoEducacional.SelectedValue));
                ObterSelecionados(ref idsNivelOcupacionalSelecionados, ddlNivelOcupacional, cblNivelOcupacional);
                break;

            case "NivelOcupacional":
                idsNivelOcupacionalSelecionados.Add(int.Parse(ddlNivelOcupacional.SelectedValue));
                ObterSelecionados(ref idsSolucaoEducacionalSelecionados, ddlSolucaoEducacional, cblSolucaoEducacional);
                break;
            }

            // Obter soluções obrigatórias filtradas pela seleção.
            var solucoesObrigatorias = new ManterSolucaoEducacional()
                                       .ObterObrigatoriosPorSolucaoEducacionalNiveisOcupacionais(
                idsSolucaoEducacionalSelecionados,
                idsNivelOcupacionalSelecionados);

            // Filtra as soluções pelas que possuam Ofertas e Turmas vigentes.
            var listaSolucoesObrigatorias =
                solucoesObrigatorias.Where(
                    x =>
                    x.SolucaoEducacional.ListaOferta.Any(
                        o => Helpers.Util.ObterVigente(o.DataInicioInscricoes, o.DataFimInscricoes) &&
                        o.ListaTurma.Any(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)))).ToList();

            // Obtém somente os usuários dos níveis ocupacionais selecionados.
            var usuariosTodosNiveis =
                new ManterUsuario().ObterPorNiveisOcupacionais(idsNivelOcupacionalSelecionados)
                .AsQueryable();

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

            // Filtrar os usuários pela UF do gestor logado, caso aplicável.
            if (usuarioLogado.IsGestor())
            {
                usuariosTodosNiveis = usuariosTodosNiveis.Where(x => x.UF.ID == usuarioLogado.UF.ID);
            }

            if (listaSolucoesObrigatorias.Any())
            {
                EfetuarMatriculas(listaSolucoesObrigatorias, usuariosTodosNiveis);

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                             string.Format(
                                                 "As matrículas estão sendo alteradas automaticamente, isto pode demorar, pois estão sendo efetuadas matrículas em {0} Soluções Educacionais, para usuários em {1} Níveis Ocupacionais.",
                                                 idsSolucaoEducacionalSelecionados.Count(),
                                                 idsNivelOcupacionalSelecionados.Count()));
            }
            else
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                             "Não foi encontrada nenhuma Solução Educacional obrigatória com alunos que precisam ser matrículados, de acordo com os filtros selecionados.");
            }
        }
コード例 #26
0
        public ItemTrilha ObterObjetoItemTrilha(int?idItemTrilha)
        {
            _itemTrilhaEdicao = idItemTrilha.HasValue
                ? new ManterItemTrilha().ObterItemTrilhaPorID(idItemTrilha.Value)
                : new ItemTrilha();

            //Nome
            _itemTrilhaEdicao.Nome = txtNome.Text.Trim();

            int cargaHoraria;

            if (!string.IsNullOrEmpty(txtCargaHoraria.Text))
            {
                if (int.TryParse(txtCargaHoraria.Text, out cargaHoraria))
                {
                    _itemTrilhaEdicao.CargaHoraria = cargaHoraria;
                }
                else
                {
                    throw new AcademicoException("O campo Carga horaria deve ser númerico e em minutos.");
                }
            }

            // Missão
            // Se for edição, o índice 0 do DropDown de Missões será uma opção válida, e não uma opção inválida.
            if (idItemTrilha.HasValue
                ? ddlMissao.SelectedIndex < 0
                : ddlMissao.SelectedIndex <= 0)
            {
                throw new AcademicoException("Selecione uma missão.");
            }

            _itemTrilhaEdicao.Missao = new ManterMissao().ObterPorID(int.Parse(ddlMissao.SelectedValue));

            //Tipo de Solução
            if ((enumTipoItemTrilha)int.Parse(ddlTipo.SelectedValue) == enumTipoItemTrilha.Solucoes)
            {
                if (string.IsNullOrEmpty(ddlSolucao.SelectedValue))
                {
                    throw new AcademicoException("Selecione uma solução educacional.");
                }
            }


            //Ativo ?
            if (ddlStatus.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlStatus.SelectedItem.Value))
            {
                var valorInformadoParaStatus = ddlStatus.SelectedItem.Value;

                if (valorInformadoParaStatus.ToUpper().Equals("S"))
                {
                    _itemTrilhaEdicao.Ativo = true;
                }
                else if (valorInformadoParaStatus.ToUpper().Equals("N"))
                {
                    _itemTrilhaEdicao.Ativo = false;
                }
            }
            else
            {
                throw new AcademicoException("Informe se o Item da Trilha está Ativo Sim ou Não.");
            }

            // Moedas
            if (string.IsNullOrWhiteSpace(txtMoedas.Text))
            {
                throw new AcademicoException("Campo \"Quantidade de Moedas\" é obrigatório");
            }

            int moedas;

            if (int.TryParse(txtMoedas.Text, out moedas))
            {
                _itemTrilhaEdicao.Moedas = moedas;
            }
            else
            {
                throw new AcademicoException("Valor inválido para o campo \"Quantidade de Moedas\"");
            }

            //Forma Aquisição
            if (ddlFormaAquisicao.SelectedItem != null &&
                !string.IsNullOrWhiteSpace(ddlFormaAquisicao.SelectedItem.Value))
            {
                _itemTrilhaEdicao.FormaAquisicao =
                    new BMFormaAquisicao().ObterPorID(int.Parse(ddlFormaAquisicao.SelectedItem.Value));
            }

            // Tipo de item trilha
            if (ddlTipo.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlTipo.SelectedItem.Value))
            {
                _itemTrilhaEdicao.Tipo = new BMTipoItemTrilha().ObterPorId(int.Parse(ddlTipo.SelectedItem.Value));
            }

            // Subitens do tipo
            switch ((enumTipoItemTrilha)_itemTrilhaEdicao.Tipo.ID)
            {
            // Discursivas ou jogos não precisam de referências.
            case enumTipoItemTrilha.Jogo:
                _itemTrilhaEdicao.Questionario = null;
                _itemTrilhaEdicao.SolucaoEducacionalAtividade = null;
                _itemTrilhaEdicao.FaseJogo = (enumFaseJogo)int.Parse(ddlFase.SelectedValue);
                break;

            case enumTipoItemTrilha.Discursiva:
                ValidarCampoLinkConteudo();
                ValdarCampoOrientacoes();
                ValidarReferenciaBibliografica();
                ValidarArquivoDeEnvio(txtNomeArquivo.Text);
                ValidarPermissaoDeReenvio();

                _itemTrilhaEdicao.Questionario = null;
                _itemTrilhaEdicao.SolucaoEducacionalAtividade = null;
                _itemTrilhaEdicao.FaseJogo = 0;
                break;

            case enumTipoItemTrilha.Atividade:
                ValidarCampoLinkConteudo();
                ValdarCampoOrientacoes();
                ValidarReferenciaBibliografica();
                ValidarArquivoDeEnvio(txtNomeArquivo.Text);

                // Verificar Questionário.
                int questionarioId;
                if (int.TryParse(ddlQuestionario.SelectedValue, out questionarioId))
                {
                    var questionario = new ManterQuestionario().ObterQuestionarioPorID(questionarioId);

                    if (questionario != null)
                    {
                        _itemTrilhaEdicao.Questionario = questionario;
                        _itemTrilhaEdicao.SolucaoEducacionalAtividade = null;
                        break;
                    }
                }
                _itemTrilhaEdicao.FaseJogo = 0;

                throw new AcademicoException("Questionário obrigatório para o tipo \"Atividade\"");

            case enumTipoItemTrilha.Solucoes:
                // Verificar Solução Educacional.
                int seId;
                if (int.TryParse(ddlSolucao.SelectedValue, out seId))
                {
                    var se = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(seId);

                    if (se != null)
                    {
                        _itemTrilhaEdicao.SolucaoEducacionalAtividade = se;
                        _itemTrilhaEdicao.Questionario = null;
                        break;
                    }
                }
                _itemTrilhaEdicao.FaseJogo = 0;

                throw new AcademicoException("Solução Educacional obrigatória para o tipo \"Soluções Educacionais\"");

            case enumTipoItemTrilha.ConheciGame:
                int idTema;
                int quantidadeAcertos;
                if (int.TryParse(ddlTema.SelectedValue, out idTema) && idTema > 0)
                {
                    _itemTrilhaEdicao.ID_TemaConheciGame = idTema;

                    if (!int.TryParse(txtAcertosTema.Text, out quantidadeAcertos) || quantidadeAcertos <= 0 || quantidadeAcertos > 30)
                    {
                        throw new AcademicoException("A quantidade de acertos deve ser maior que 0 e menor que 30");
                    }

                    _itemTrilhaEdicao.QuantidadeAcertosTema = !string.IsNullOrWhiteSpace(txtAcertosTema.Text) ? int.Parse(txtAcertosTema.Text) : 0;
                }
                else
                {
                    throw new AcademicoException("Selecione um tema");
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            ValidarArquivoDeEnvio(txtNomeArquivo.Text);

            return(_itemTrilhaEdicao);
        }
コード例 #27
0
        private void TratarComboStatusOferta(DropDownList ddlStatusOferta, classes.MatriculaOferta matriculaOferta, Label statusOferta = null)
        {
            var permiteAlteracao = matriculaOferta.Oferta.AlteraPeloGestorUC;

            // Caso esteja em modo de avaliação, só adiciona o Status atual da matrícula e esconde o dropdown.
            if (!InModoDeAvaliacao && (permiteAlteracao == true || _manterUsuario.PerfilAdministrador()))
            {
                if (ddlStatusOferta != null)
                {
                    var categoriaConteudo = new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(matriculaOferta.Oferta.SolucaoEducacional.ID).CategoriaConteudo;

                    var listaStatusMatricula = (new ManterStatusMatricula()).ObterStatusMatriculaPorCategoriaConteudo(categoriaConteudo)
                                               .Where(p => p.ID != (int)enumStatusMatricula.Reprovado).ToList();

                    // Obter lista usando AutoMapper para não alterar a lista original com a adição
                    // do status "Cancelado\Turma" abaixo.
                    Mapper.Map(ListaStatusMatricula, listaStatusMatricula);

                    if (matriculaOferta.StatusMatricula == enumStatusMatricula.CanceladoTurma)
                    {
                        var cancelado =
                            new ManterStatusMatricula().ObterStatusMatriculaPorID(
                                (int)enumStatusMatricula.CanceladoTurma);

                        listaStatusMatricula.Add(cancelado);

                        listaStatusMatricula = listaStatusMatricula.OrderBy(x => x.Nome).ToList();
                    }

                    // Caso o status atual não exista na lista de status disponíveis, insere ele na lista.
                    if (!listaStatusMatricula.Select(x => x.ID).Contains((int)matriculaOferta.StatusMatricula))
                    {
                        var statusAtual =
                            new ManterStatusMatricula().ObterStatusMatriculaPorID((int)matriculaOferta.StatusMatricula);

                        listaStatusMatricula.Add(statusAtual);

                        // Reordenar a lista.
                        listaStatusMatricula = listaStatusMatricula.OrderBy(x => x.Nome).ToList();
                    }

                    WebFormHelper.PreencherLista(listaStatusMatricula, ddlStatusOferta);

                    // Desabilitar a opção de cancelamento.
                    if (matriculaOferta.StatusMatricula == enumStatusMatricula.CanceladoTurma)
                    {
                        ddlStatusOferta.Items.FindByValue(((int)enumStatusMatricula.CanceladoTurma).ToString()).Attributes.Add("disabled", "disabled");
                    }

                    var idStatusMatricula = (int)matriculaOferta.StatusMatricula;

                    WebFormHelper.SetarValorNaCombo(idStatusMatricula.ToString(), ddlStatusOferta);
                }
            }
            else
            {
                ddlStatusOferta.Visible = false;

                if (statusOferta != null)
                {
                    statusOferta.Visible = true;
                    statusOferta.Text    = matriculaOferta.StatusMatriculaFormatado;
                }
            }
        }