private bool GravarParametrizacao() { bool ret = true; int idDisciplina = ViewControl.GetIdItemCombo(cboDisciplina); if (geracaoAvaliacao == null) { geracaoAvaliacao = new GeracaoAvaliacao(); geracaoAvaliacao.IdDisciplina = idDisciplina; } geracaoAvaliacao.QtdQuestoesAvaliacao = (int)numQtdQuestoes.Value; geracaoAvaliacao.TempoPrevistoResposta = (int)numTempoPrevistoAvaliacao.Value; geracaoAvaliacao.IgnorarTempoMinReutilizacao = chkIgnorarTempoMinReutilizacao.Checked; geracaoAvaliacao.TempoMaximoProc = (int)numTempoMaxProc.Value; geracaoAvaliacao.QtdMaxGeracoes = (int)numQtdMaxGeracoes.Value; geracaoAvaliacao.PercMinAceitavel = (double)numPercMinAceitavel.Value; geracaoAvaliacao.ProbabilidadeReproducao = (double)numProbabilidadeReproducao.Value; geracaoAvaliacao.ProbabilidadeMutacao = (double)numProbabilidadeMutacao.Value; geracaoAvaliacao.Seletor = (SeletorGA)cboSeletorGA.SelectedValue; geracaoAvaliacao.HabilitaElitismo = chkHabilitaElitismo.Checked; geracaoAvaliacao.ConfigComplexidades = colControlComplexidade.GetConfigComplexidade(); geracaoAvaliacao.ConfigTipoQuestoes = colControlTipoQuestao.GetConfigTipoQuestoes(); List <GeracaoAvaliacao> list = DBControl.Table <GeracaoAvaliacao> .Pesquisar(x => x.IdDisciplina == idDisciplina); bool gravar = true; if (list != null && list.Count > 0) { gravar = !geracaoAvaliacao.ConfigEquals(list[0]); } if (gravar) { int id = DBControl.Table <GeracaoAvaliacao> .AutoIncluir(geracaoAvaliacao); ret = id != 0; if (ret) { geracaoAvaliacao.Id = id; } } return(ret); }
public bool ConfigEquals(GeracaoAvaliacao geracaoAvaliacao) { bool ret = IdDisciplina == geracaoAvaliacao.IdDisciplina; if (ret) { ret = QtdQuestoesAvaliacao == geracaoAvaliacao.QtdQuestoesAvaliacao; } if (ret) { ret = TempoPrevistoResposta == geracaoAvaliacao.TempoPrevistoResposta; } if (ret) { ret = TempoMaximoProc == geracaoAvaliacao.TempoMaximoProc; } if (ret) { ret = IgnorarTempoMinReutilizacao == geracaoAvaliacao.IgnorarTempoMinReutilizacao; } if (ret) { ret = QtdMaxGeracoes == geracaoAvaliacao.QtdMaxGeracoes; } if (ret) { ret = PercMinAceitavel == geracaoAvaliacao.PercMinAceitavel; } if (ret) { ret = ProbabilidadeReproducao == geracaoAvaliacao.ProbabilidadeReproducao; } if (ret) { ret = ProbabilidadeMutacao == geracaoAvaliacao.ProbabilidadeMutacao; } if (ret) { ret = Seletor == geracaoAvaliacao.Seletor; } if (ret) { ret = HabilitaElitismo == geracaoAvaliacao.HabilitaElitismo; } if (ret) { ret = geracaoAvaliacao.ConfigComplexidades != null && ConfigComplexidades.Length == geracaoAvaliacao.ConfigComplexidades.Length; } if (ret) { ret = geracaoAvaliacao.ConfigTipoQuestoes != null && ConfigTipoQuestoes.Length == geracaoAvaliacao.ConfigTipoQuestoes.Length; } if (ret) { for (int index = 0; index < ConfigComplexidades.Length; index++) { ret = ConfigComplexidades[index].Index == geracaoAvaliacao.ConfigComplexidades[index].Index; if (ret) { ret = ConfigComplexidades[index].ComplexIni == geracaoAvaliacao.ConfigComplexidades[index].ComplexIni; } if (ret) { ret = ConfigComplexidades[index].ComplexFim == geracaoAvaliacao.ConfigComplexidades[index].ComplexFim; } if (ret) { ret = ConfigComplexidades[index].Quantidade == geracaoAvaliacao.ConfigComplexidades[index].Quantidade; } if (!ret) { break; } } } if (ret) { for (int index = 0; index < ConfigTipoQuestoes.Length; index++) { ret = ConfigTipoQuestoes[index].Index == geracaoAvaliacao.ConfigTipoQuestoes[index].Index; if (ret) { ret = ConfigTipoQuestoes[index].TipoQuestao == geracaoAvaliacao.ConfigTipoQuestoes[index].TipoQuestao; } if (ret) { ret = ConfigTipoQuestoes[index].Ativo == geracaoAvaliacao.ConfigTipoQuestoes[index].Ativo; } if (ret) { ret = ConfigTipoQuestoes[index].Quantidade == geracaoAvaliacao.ConfigTipoQuestoes[index].Quantidade; } if (!ret) { break; } } } return(ret); }
private bool LerConfiguracaoGeracaoAvaliacao(int idDisciplina) { bool ret = false; List <GeracaoAvaliacao> list = DBControl.Table <GeracaoAvaliacao> .Pesquisar(x => x.IdDisciplina == idDisciplina); if (list != null && list.Count > 0) { geracaoAvaliacao = list[0]; numQtdQuestoes.Value = geracaoAvaliacao.QtdQuestoesAvaliacao; numTempoPrevistoAvaliacao.Value = geracaoAvaliacao.TempoPrevistoResposta; chkIgnorarTempoMinReutilizacao.Checked = geracaoAvaliacao.IgnorarTempoMinReutilizacao; if ((decimal)geracaoAvaliacao.TempoMaximoProc < numTempoMaxProc.Minimum) { numTempoMaxProc.Value = numTempoMaxProc.Minimum; } else if ((decimal)geracaoAvaliacao.TempoMaximoProc > numTempoMaxProc.Maximum) { numTempoMaxProc.Value = numTempoMaxProc.Maximum; } else { numTempoMaxProc.Value = (decimal)geracaoAvaliacao.TempoMaximoProc; } if ((decimal)geracaoAvaliacao.QtdMaxGeracoes < numQtdMaxGeracoes.Minimum) { numQtdMaxGeracoes.Value = numQtdMaxGeracoes.Minimum; } else if ((decimal)geracaoAvaliacao.QtdMaxGeracoes > numQtdMaxGeracoes.Maximum) { numQtdMaxGeracoes.Value = numQtdMaxGeracoes.Maximum; } else { numQtdMaxGeracoes.Value = (decimal)geracaoAvaliacao.QtdMaxGeracoes; } if ((decimal)geracaoAvaliacao.PercMinAceitavel < numPercMinAceitavel.Minimum) { numPercMinAceitavel.Value = numPercMinAceitavel.Minimum; } else if ((decimal)geracaoAvaliacao.PercMinAceitavel > numPercMinAceitavel.Maximum) { numPercMinAceitavel.Value = numPercMinAceitavel.Maximum; } else { numPercMinAceitavel.Value = (decimal)geracaoAvaliacao.PercMinAceitavel; } if ((decimal)geracaoAvaliacao.ProbabilidadeReproducao < numProbabilidadeReproducao.Minimum) { numProbabilidadeReproducao.Value = numProbabilidadeReproducao.Minimum; } else if ((decimal)geracaoAvaliacao.ProbabilidadeReproducao > numProbabilidadeReproducao.Maximum) { numProbabilidadeReproducao.Value = numProbabilidadeReproducao.Maximum; } else { numProbabilidadeReproducao.Value = (decimal)geracaoAvaliacao.ProbabilidadeReproducao; } if ((decimal)geracaoAvaliacao.ProbabilidadeMutacao < numProbabilidadeMutacao.Minimum) { numProbabilidadeMutacao.Value = numProbabilidadeMutacao.Minimum; } else if ((decimal)geracaoAvaliacao.ProbabilidadeMutacao > numProbabilidadeMutacao.Maximum) { numProbabilidadeMutacao.Value = numProbabilidadeMutacao.Maximum; } else { numProbabilidadeMutacao.Value = (decimal)geracaoAvaliacao.ProbabilidadeMutacao; } cboSeletorGA.SelectedValue = (int)geracaoAvaliacao.Seletor; chkHabilitaElitismo.Checked = geracaoAvaliacao.HabilitaElitismo; colControlComplexidade.QtdMaxima = geracaoAvaliacao.QtdQuestoesAvaliacao; colControlComplexidade.InitFromConfigComplexidades(geracaoAvaliacao.ConfigComplexidades); colControlTipoQuestao.InitFromConfigTipoQuestoes(geracaoAvaliacao.ConfigTipoQuestoes); ret = true; } else { geracaoAvaliacao = null; ConfiguracaoDefault(); } return(ret); }