Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }