예제 #1
0
        public bool corrigir_questoes()
        {
            _erros.Clear();


            string             resp       = "";
            float              peso_prova = 0;
            CadernoBO          caderno    = new CadernoBO();
            CARTAO             cartao;
            tb_resposta        resposta;
            tb_questao         questao;
            CandidatoBO        candidatoBO         = new CandidatoBO();
            List <tb_resposta> respostasCandidatos = new List <tb_resposta>();

            List <tb_questao_caderno> questoes_caderno = new List <tb_questao_caderno>();

            try
            {
                for (int i = 0; i < cartoes.Count; i++)
                {
                    cartao = (CARTAO)cartoes[i];
                    // TbCandidato candidato = new TbCandidato(cartao.inscricao);
                    tb_candidato candidato = candidatoBO.buscarCandidato(cartao.inscricao).First <tb_candidato>();

                    candidatoBO.atribuir_falta(candidato, cartao.falta.Equals("F"));

                    if (candidatoBO.apagar_respostas(candidato.cod_candidato))
                    {
                        // caderno.pegar_no_banco(cartao.cod_caderno);
                        questoes_caderno = caderno.get_questoes_caderno(cartao.inscricao);


                        for (int j = 0; j < questoes_caderno.Count; j++)
                        {
                            questao  = new QuestaoBO().getQuestao(((tb_questao_caderno)questoes_caderno[j]).cod_questao);  //(((QUESTAO_CADERNO)questoes_caderno[j]).COD_QUESTAO);
                            resp     = cartao.respostas.Substring(j, 1);
                            resposta = new tb_resposta();

                            // peso_prova = new PROVA_CONCURSO(questao.COD_PROVA_CONCURSO).peso_prova();
                            //if (new TIPO_QUESTAO(questao.COD_TIPO_QUESTAO).SUBJETIVO)
                            //{
                            //    if (resp.Equals("A"))
                            //    {
                            //        resp = "10";
                            //    }

                            //    if (!cartao.falta.Equals("F"))
                            //    {
                            //        if (resp.Equals("?") || resp.Equals(" "))
                            //        {
                            //            return false;
                            //        }
                            //    }
                            //    else
                            //    {
                            //        resp = "0";
                            //    }
                            //    resposta.NOTA = int.Parse(resp) * questao.PESO;
                            //}


                            if (resp.Equals(questao.resposta_correta) || questao.resposta_correta.Equals("Z"))
                            {
                                resposta.nota = 1;
                            }
                            else
                            {
                                resposta.nota = 0;
                            }

                            resposta.resposta      = resp;
                            resposta.cod_questao   = questoes_caderno[j].cod_questao;
                            resposta.cod_candidato = candidato.cod_candidato;
                            // new RespostaBO().Salvar(resposta);
                            respostasCandidatos.Add(resposta);
                        }
                    }
                }
                for (int r = 0; r < respostasCandidatos.Count; r++)
                {
                    new RespostaBO().Salvar((tb_resposta)respostasCandidatos[r]);
                }
                return(true);
            }
            catch (Exception e)
            {
                string teste = e.Message;
                teste = teste;
                return(false);
            }
        }
예제 #2
0
        public bool trata_arquivo()
        {
            _erros.Clear();
            string linha   = "";
            int    n_linha = 0;
            bool   ok      = true;

            try
            {
                StreamReader arq = new StreamReader(_arquivo);

                CadernoBO   caderno   = new CadernoBO();
                CandidatoBO candidato = new CandidatoBO();

                cartoes = new ArrayList();

                while ((linha = arq.ReadLine()) != null)
                {
                    n_linha++;
                    if (linha.Length >= tam_inscricao + 1)
                    {
                        CARTAO cartao = new CARTAO();
                        cartao.inscricao = linha.Substring(0, tam_inscricao);
                        // cartao.id_caderno = linha.Substring(tam_inscricao, 1);
                        cartao.falta = linha.Substring(tam_inscricao, 1);
                        if (!existe_cartao_lido(cartao.inscricao))
                        {
                            if (candidato.buscarCandidato(cartao.inscricao).Count > 0)
                            {
                                //cartao.grade = candidato.COD_GRADE.ToString();

                                if (linha.Length == TAMANHO_LINHA)
                                {
                                    cartao.respostas = linha.Substring(INICIO_RESPOSTAS - 1, (FINAL_RESPOSTAS - INICIO_RESPOSTAS) + 1);
                                    cartoes.Add(cartao);
                                }
                                else
                                {
                                    ok = false;
                                    _erros.Add(new ERRO(n_linha, "Tamanho da linha inválido - " + linha.Length.ToString() + " Caracteres", linha));
                                }
                            }
                            else
                            {
                                ok = false;
                                _erros.Add(new ERRO(n_linha, "Inscrição do candidato não encontrada! - " + cartao.inscricao, linha));
                            }
                        }
                        else
                        {
                            ok = false;
                            _erros.Add(new ERRO(n_linha, "Inscrição do candidato DUPLICADA! - " + cartao.inscricao, linha));
                        }
                    }
                    else
                    {
                        ok = false;
                        _erros.Add(new ERRO(n_linha, "O formato da linha é inválido!", linha));
                    }
                }
                arq.Close();
            }
            catch (System.Exception e)
            {
                _erros.Add(new ERRO(n_linha, "Erro ao tratar arquivo - " + e.Message, linha));
                ok = false;
            }

            return(ok);
        }