/// <summary> /// Obtém a listagem de questão resposta. Caso não tenha, cria os objetos agora. Caso possua parcialmente, obtém somente os preenchidos e cria o resto. /// </summary> /// <returns></returns> private IList <classes.QuestaoResposta> ObterQuestoesResposta(classes.MatriculaTurma matricula, classes.Avaliacao avaliacao) { var retorno = new List <classes.QuestaoResposta>(); for (var i = 0; i < QuantidadeQuestoes; i++) { var questao = Questoes[i]; classes.QuestaoResposta resposta; // Obtém ou cria uma nova resposta utilizando mágica. if (avaliacao != null) { resposta = avaliacao.Respostas.FirstOrDefault(x => x.MatriculaTurma.ID == matricula.ID && x.Questao.ID == questao.ID) ?? new classes.QuestaoResposta { Questao = questao, MatriculaTurma = matricula }; } else { resposta = new classes.QuestaoResposta { Questao = questao, MatriculaTurma = matricula }; } retorno.Add(resposta); } return(retorno); }
protected void btnSalvar_OnClick(object sender, EventArgs e) { var manterAvaliacao = new ManterAvaliacao(); // Esse método já salva a avaliação. var avaliacao = ObterObjetoAvaliacao(manterAvaliacao); // Persistir a avaliação salva caso precise usar no envio. AvaliacaoSalva = avaliacao; }