コード例 #1
0
ファイル: EditarAula.aspx.cs プロジェクト: filipi/OpenSARC
    protected void ddlRecurso_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList ddlRecurso = (DropDownList)sender;
        string       recString  = ddlRecurso.SelectedValue;

        TableCell    cell     = (TableCell)ddlRecurso.Parent;
        DataGridItem gridItem = (DataGridItem)cell.Parent;

        // Salva dados digitados

        SalvarTodos();
//        SalvaDados(gridItem);

        // abre a popup de selecao de recursos
        //string id = lblaulaId.Text;
        //ScriptManager.RegisterClientScriptBlock(this, GetType(), "onClick", "popitup('SelecaoRecursos.aspx?AulaId=" + id + "');", true);

        Label lblaulaId = (Label)gridItem.FindControl("lblAulaId");
        Guid  idAula    = new Guid(lblaulaId.Text);
        Aula  aulaAtual = aulaBo.GetAulaById(idAula);

        RequisicoesBO      controleRequisicoes   = new RequisicoesBO();
        IList <Requisicao> requisicoesExistentes = controleRequisicoes.GetRequisicoesPorAula(idAula, cal);
        int pri = 0;

        foreach (Requisicao req in requisicoesExistentes)
        {
            if (req.Prioridade > pri)
            {
                pri = req.Prioridade;
            }
        }

        CategoriaRecursoBO controladorCategorias = new CategoriaRecursoBO();
        Guid             catId     = new Guid(ddlRecurso.SelectedValue);
        CategoriaRecurso categoria = controladorCategorias.GetCategoriaRecursoById(catId);
        Requisicao       novaReq   = Requisicao.NewRequisicao(aulaAtual, categoria, pri + 1); // teste! sempre prioridade + 1

        // Insere a nova requisição
        controleRequisicoes.InsereRequisicao(novaReq);
        requisicoesExistentes.Add(novaReq);

        // Atualiza label com os recursos selecionados
        Label  lblRecursosSelecionados = (Label)gridItem.FindControl("lblRecursosSelecionados");
        string recursos = "";

        foreach (Requisicao r in requisicoesExistentes)
        {
            if (recursos != String.Empty)
            {
                recursos += "<br/>";
            }
            recursos += r.Prioridade + ": " + r.CategoriaRecurso.Descricao;
        }
        lblRecursosSelecionados.Text = recursos;

        // Remove a categoria selecionada do drop down list
        ddlRecurso.Items.Remove(ddlRecurso.Items.FindByValue(ddlRecurso.SelectedValue));
        ddlRecurso.SelectedIndex = 0;
    }
コード例 #2
0
    protected void ddlCategoriaRecurso_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (ddlCategoriaRecurso.SelectedIndex != 0)
        {
            if (!btnConfirmar.Enabled)
            {
                btnConfirmar.Enabled = true;
            }
            bool jaInserida = false;
            lblStatus.Text = "";
            CategoriaRecursoBO controladorCategorias = new CategoriaRecursoBO();
            Guid id = new Guid(ddlCategoriaRecurso.SelectedValue);

            CategoriaRecurso     categoria    = controladorCategorias.GetCategoriaRecursoById(id);
            Requisicao           req          = Requisicao.NewRequisicao(aulaAtual, categoria, Convert.ToInt32(ddlPrioridadeRequisicao.SelectedValue));
            DecoratorRequisicoes recComEstado = new DecoratorRequisicoes(req, DecoratorRequisicoes.EstadoRequisicao.Inserida);
            //foreach para comparar se Recurso já existe na lista
            foreach (DecoratorRequisicoes dec in listaRequisicoes)
            {
                if (dec.CategoriaRecurso.Equals(recComEstado.CategoriaRecurso) && dec.EstadoAtual != DecoratorRequisicoes.EstadoRequisicao.Removida)
                {
                    lblStatus.Text = "Recurso já selecionado.";
                    if (listaRequisicoes.Count < ddlPrioridadeRequisicao.SelectedIndex + 1)
                    {
                        ddlCategoriaRecurso.SelectedIndex = 0;
                    }
                    else
                    {
                        ddlCategoriaRecurso.SelectedValue = listaRequisicoes[ddlPrioridadeRequisicao.SelectedIndex].CategoriaRecurso.Id.ToString();
                    }
                    jaInserida = true;
                }
            }
            if (!jaInserida)
            {
                foreach (DecoratorRequisicoes dec in listaRequisicoes)
                {
                    //Compara se estado atual da categoria é igual à removida
                    if (dec.EstadoAtual == DecoratorRequisicoes.EstadoRequisicao.Removida)
                    {
                        continue;
                    }
                    //Compara se a prioridade da categoria para inserir é igual a da categoria da lista e se a categoria da lista é diferente de Inserida
                    if (dec.Prioridade == recComEstado.Prioridade && dec.EstadoOriginal != DecoratorRequisicoes.EstadoRequisicao.Inserida)
                    {
                        dec.CategoriaRecurso = controladorCategorias.GetCategoriaRecursoById(id);
                        dec.EstadoAtual      = DecoratorRequisicoes.EstadoRequisicao.Atualizada;
                        lblStatus.Text       = "Categoria alterada para a opção.";
                        jaInserida           = true;
                        break;
                    }
                    //Compara se a prioridade da categoria para inserir é igual a da categoria da lista e se a categoria da lista é igual a Inserida
                    if (dec.Prioridade == recComEstado.Prioridade && dec.EstadoOriginal == DecoratorRequisicoes.EstadoRequisicao.Inserida)
                    {
                        dec.CategoriaRecurso = controladorCategorias.GetCategoriaRecursoById(id);
                        lblStatus.Text       = "Categoria alterada para a opção.";
                        jaInserida           = true;
                        break;
                    }
                }
            }
            //Insere se a categoria não estiver na lista
            if (!jaInserida)
            {
                int aux = (int)Session["Opcoes"];
                aux++;
                Session["Opcoes"] = aux;
                listaRequisicoes.Add(recComEstado);
                lblStatus.Text = "Categoria selecionada para a opção.";
            }
        }
        else
        {
            //foreach para percorrer a lista para a ddl de categorias voltar para a categoria
            //atual quando selecionada a opção "Selecione"
            foreach (DecoratorRequisicoes dec in listaRequisicoes)
            {
                if (dec.Prioridade == (ddlPrioridadeRequisicao.SelectedIndex + 1))
                {
                    ddlCategoriaRecurso.SelectedValue = dec.CategoriaRecurso.Id.ToString();
                    break;
                }
            }
        }
    }