Пример #1
0
 private bool ProcuraRecurso(DecoratorRequisicoes req)
 {
     if (!ddlCategoriaRecurso.SelectedItem.Text.Equals("Selecione"))
     {
         Guid id = new Guid(ddlCategoriaRecurso.SelectedValue);
         return(req.CategoriaRecurso.Id.Equals(id) ? true : false);
     }
     return(false);
 }
Пример #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;
                }
            }
        }
    }
Пример #3
0
    protected void btnRemover_Click(object sender, EventArgs e)
    {
        DecoratorRequisicoes dec = listaRequisicoes.Find(ProcuraRecurso);

        if (dec != null)
        {
            //Compara se dec já está no banco ou não
            if (dec.EstadoOriginal != DecoratorRequisicoes.EstadoRequisicao.Original)
            {
                //se não está, dec é removido da lista e os próximos items tem a prioridade
                //diminuida em 1
                listaRequisicoes.Remove(dec);
                int aux = (int)Session["Opcoes"];
                aux--;
                Session["Opcoes"] = aux;
                for (int i = dec.Prioridade - 1; i < listaRequisicoes.Count; i++)
                {
                    listaRequisicoes[i].Prioridade--;
                }
            }
            else
            {
                //se sim seta o estado para removida, para remover no confirmar
                int aux = (int)Session["Opcoes"];
                aux--;
                Session["Opcoes"] = aux;
                dec.EstadoAtual   = DecoratorRequisicoes.EstadoRequisicao.Removida;
                for (int i = dec.Prioridade; i < listaRequisicoes.Count; i++)
                {
                    if (listaRequisicoes[i].EstadoAtual != DecoratorRequisicoes.EstadoRequisicao.Removida)
                    {
                        listaRequisicoes[i].Prioridade--;
                        if (listaRequisicoes[i].EstadoOriginal != DecoratorRequisicoes.EstadoRequisicao.Inserida)
                        {
                            listaRequisicoes[i].EstadoAtual = DecoratorRequisicoes.EstadoRequisicao.Atualizada;
                        }
                    }
                }
            }
            //foreach para setar o item da ddl categoria recurso
            foreach (DecoratorRequisicoes decor in listaRequisicoes)
            {
                if (decor.EstadoAtual != DecoratorRequisicoes.EstadoRequisicao.Removida)
                {
                    ddlCategoriaRecurso.SelectedValue = decor.CategoriaRecurso.Id.ToString();
                    break;
                }
                ddlCategoriaRecurso.SelectedIndex = 0;
            }
            //retira uma opção da ddl prioridade requisicao
            if (ddlPrioridadeRequisicao.Items.Count != 1)
            {
                ddlPrioridadeRequisicao.Items.RemoveAt(ddlPrioridadeRequisicao.Items.Count - 1);
                ddlPrioridadeRequisicao.SelectedIndex = ddlPrioridadeRequisicao.SelectedIndex - 1;
            }
            else
            {
                ddlCategoriaRecurso.SelectedIndex = 0;
            }
            lblStatus.Text = "Recurso removido com sucesso.";
        }
        else
        {
            lblStatus.Text = "Selecione um recurso cadastrado para ser removido.";
        }
    }