예제 #1
0
    /// <summary>
    /// Carrega o combo com os formatos de avaliação padrão ativo ou de um formato específico.
    /// </summary>
    /// <param name="fav_id">Id do formato de avaliação</param>
    public void CarregarPorRegrasSemPeriodo_SeriadoAvaliacoes
    (
        int fav_id
        , int qtdeAvaliacaoPeriodica
        , bool seriadoAvaliacoes
    )
    {
        try
        {
            ddlCombo.Items.Clear();
            ddlCombo.DataSource = ACA_FormatoAvaliacaoBO.SelecionaPor_RegrasCurriculoPeriodo(fav_id, __SessionWEB.__UsuarioWEB.Usuario.ent_id, qtdeAvaliacaoPeriodica, seriadoAvaliacoes);
            ddlCombo.Items.Insert(0, new ListItem("-- Selecione um formato de avaliação --", "-1", true));
            ddlCombo.AppendDataBoundItems = true;
            ddlCombo.DataBind();
        }
        catch (Exception e)
        {
            // Grava o erro e mostra pro usuário.
            ApplicationWEB._GravaErro(e.InnerException);

            lblMessage.Text    = "Erro ao tentar carregar " + lblTitulo.Text.Replace('*', ' ').ToLower() + ".";
            lblMessage.Visible = true;
        }
    }
예제 #2
0
    /// <summary>
    /// Carrega o combo com os formatos de avaliação padrão ativo ou de um formato específico.
    /// Valida regras do curso
    /// </summary>
    /// <param name="fav_id">Id do formato de avaliação</param>
    /// <param name="cur_id">ID do curso</param>
    /// <param name="crr_id">ID do currículo</param>
    /// <param name="crp_id">ID do curriculoPeriodo</param>
    public void CarregarPorRegrasCurso
        (int fav_id, int cur_id, int crr_id, int crp_id, Nullable <bool> tur_docenteEspecialista)
    {
        try
        {
            ACA_Curriculo crr = new ACA_Curriculo {
                cur_id = cur_id, crr_id = crr_id
            };
            ACA_CurriculoBO.GetEntity(crr);

            // Verifica se o curso tem regime de matrícula seriado por avaliações.
            if ((ACA_CurriculoRegimeMatricula)crr.crr_regimeMatricula == ACA_CurriculoRegimeMatricula.SeriadoPorAvaliacoes)
            {
                // Se curso seriado por avaliações, usa o outro método de carregar, para usar as regras específicas.
                CarregarPorRegrasCurso_SeriadoAvaliacoes(fav_id, crr.crr_qtdeAvaliacaoProgressao, cur_id, crr_id, crp_id, tur_docenteEspecialista);
            }
            else
            {
                ddlCombo.Items.Clear();
                object lista;

                string doc_especialista = tur_docenteEspecialista == null ? string.Empty : tur_docenteEspecialista.ToString();
                string chave            = string.Format("FormatoAvaliacao_{0};{1};{2};{3};{4}", fav_id, cur_id, crr_id, crp_id, doc_especialista);
                object cache            = Cache[chave];

                if (cache == null)
                {
                    // Carrega do banco para guardar em cache.
                    DataTable dt = ACA_FormatoAvaliacaoBO.SelecionaPor_RegrasCurriculoPeriodo
                                       (fav_id, cur_id, crr_id, crp_id, tur_docenteEspecialista, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

                    lista = (from DataRow dr in dt.Rows
                             select new
                    {
                        fav_nome = dr["fav_nome"].ToString()
                        ,
                        fav_id = dr["fav_id"].ToString()
                    }).ToList();

                    // Adiciona cache com validade de 1 hora.
                    Cache.Insert(chave, lista, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
                }
                else
                {
                    lista = cache;
                }

                ddlCombo.DataSource = lista;

                _MostrarMessageSelecione = true;

                ddlCombo.DataBind();
            }
        }
        catch (Exception e)
        {
            // Grava o erro e mostra pro usuário.
            ApplicationWEB._GravaErro(e.InnerException);

            lblMessage.Text    = "Erro ao tentar carregar " + lblTitulo.Text.Replace('*', ' ').ToLower() + ".";
            lblMessage.Visible = true;
        }
    }