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; }
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; } } } }