private void GerarListaDeQuestoes() { parametersGA.Avaliacoes = DBControl.Table <Avaliacao> .Pesquisar(); parametersGA.QuestoesAvaliacao = DBControl.Table <AvaliacaoQuestao> .Pesquisar(); parametersGA.AvaliacoesAnteriores = AvaliacoesAnteriores(parametersGA.QuestoesAvaliacao); parametersGA.QuestoesAvaliacao.Sort((x, y) => x.DtGeracao.CompareTo(y.DtGeracao)); List <Questao> listQuestao = DBControl.Table <Questao> .Pesquisar(x => x.IdDisciplina == parametersGA.IdDisciplina && x.Ativo); foreach (var questao in listQuestao) { DateTime dtUtilizacao = new DateTime(1, 1, 1); AvaliacaoQuestao aq = parametersGA.QuestoesAvaliacao.FindLast(x => x.IdQuestao == questao.Id); if (aq != null) { Avaliacao av = parametersGA.Avaliacoes.FindLast(x => x.Id == aq.IdAvaliacao); if (av != null) { dtUtilizacao = av.DtGeracao; } } if (parametersGA.IgnorarTempoMinReutilizacao || (DateTime.Today - dtUtilizacao).TotalDays > questao.TempoMinimoReutilizacao) { parametersGA.Questoes.Add(questao); } } }
private bool GravarAvaliacao() { bool ret = false; DBControl.BeginTrans(); try { avaliacao = new Avaliacao(); string codigo = GetCodigoAvaliacao(); string strSeq = ""; List <Avaliacao> avaliacoes = DBControl.Table <Avaliacao> .Pesquisar(x => x.Codigo.StartsWith(codigo)); if (avaliacoes != null && avaliacoes.Count > 0) { strSeq = avaliacoes[avaliacoes.Count - 1].Codigo.Substring(codigo.Length); } int seq = 1; if (!strSeq.Equals("")) { seq = int.Parse(strSeq); seq++; } codigo = codigo + seq.ToString("000"); StringBuilder sb = new StringBuilder(); sb.Append("Avaliação "); sb.Append(tipoAvaliacao); sb.Append(" "); sb.Append(disciplina.Nome); sb.Append(" sequência "); sb.Append(seq.ToString("000")); avaliacao.Codigo = codigo; avaliacao.Descricao = sb.ToString(); avaliacao.DtGeracao = dtGeracao; avaliacao.IdDisciplina = parametersGA.IdDisciplina; avaliacao.QtdQuestoes = parametersGA.QtdQuestoes; int idAvaliacao = DBControl.Table <Avaliacao> .Incluir(avaliacao); ret = idAvaliacao > 0; if (ret) { AvaliacaoQuestao aq; int id; foreach (int idQuestao in questoes) { aq = new AvaliacaoQuestao(); aq.IdAvaliacao = idAvaliacao; aq.DtGeracao = dtGeracao; aq.IdQuestao = idQuestao; id = DBControl.Table <AvaliacaoQuestao> .Incluir(aq); ret = id > 0; if (!ret) { break; } } } if (ret) { DBControl.Commit(); } else { DBControl.Rollback(); } } catch (Exception ex) { Mensagem.ShowErro("Erro na inclusão da Avaliação!", ex); DBControl.Rollback(); } return(ret); }