public void Salvar(QuestionarioParticipacao qp) { repositorio.Salvar(qp); }
public void Remover(QuestionarioParticipacao qp) { repositorio.Excluir(qp); }
public void SalvarQuestionario() { try { QuestionarioParticipacao questionarioParticipacao; if (!string.IsNullOrWhiteSpace(hdnIdQuestionarioParticipacao.Value)) { questionarioParticipacao = new ManterQuestionarioParticipacao().ObterQuestionarioParticipacaoPorId(int.Parse(hdnIdQuestionarioParticipacao.Value)); } else { var questionario = new ManterQuestionario().ObterQuestionarioPorID(int.Parse(hdnIdQuestionario.Value)); var usuarioLogado = new ManterUsuario().ObterUsuarioLogado(); questionarioParticipacao = new QuestionarioParticipacao { Questionario = questionario, DataGeracao = DateTime.Now, Usuario = usuarioLogado, DataParticipacao = DateTime.Now, TipoQuestionarioAssociacao = new ManterTipoQuestionarioAssociacao().ObterTipoQuestionarioAssociacaoPorID(5), TextoEnunciadoPre = questionario.TextoEnunciado, Evolutivo = false, NivelOcupacional = new NivelOcupacional { ID = usuarioLogado.NivelOcupacional.ID }, Uf = new Uf { ID = usuarioLogado.UF.ID }, Turma = new Turma { ID = int.Parse(hdnIdTurma.Value) } }; } var listaItemQuestionarioParticipacao = new List <ItemQuestionarioParticipacao>(); // Obter respostas dissertivas do questionário. foreach (Control row in rptQuestionario.Controls) { var hdnIdItemQuestionario = (HiddenField)row.FindControl("hdnIdItemQuestionario"); if (hdnIdItemQuestionario == null) { throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente."); } int idItemQuestionario; int.TryParse(hdnIdItemQuestionario.Value, out idItemQuestionario); var itemQuestionario = new ManterItemQuestionario().ObterItemQuestionarioPorID(idItemQuestionario); if (itemQuestionario == null) { throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente."); } var txtResposta = (TextBox)row.FindControl("txtResposta"); if (txtResposta == null) { throw new AcademicoException("Questionário mal formatado ou alterado, atualize a página e tente novamente."); } var itemQuestionarioParticipacao = Mapper.Map <ItemQuestionarioParticipacao>(itemQuestionario); itemQuestionarioParticipacao.QuestionarioParticipacao = questionarioParticipacao; if (itemQuestionarioParticipacao.TipoItemQuestionario.ID == (int)enumTipoItemQuestionario.Discursiva) { // Validação do campo em branco. if (string.IsNullOrWhiteSpace(txtResposta.Text)) { throw new AcademicoException(string.Format("A questão \"{0}\" é obrigatória", string.IsNullOrWhiteSpace(itemQuestionarioParticipacao.Ordem.ToString()) ? itemQuestionarioParticipacao.Questao : itemQuestionarioParticipacao.Ordem.ToString())); } itemQuestionarioParticipacao.Resposta = txtResposta.Text; } listaItemQuestionarioParticipacao.Add(itemQuestionarioParticipacao); } questionarioParticipacao.ListaItemQuestionarioParticipacao = listaItemQuestionarioParticipacao; // Executar lógica para questionário de cancelamento. if (questionarioParticipacao.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Cancelamento) { var matriculasTurmasIds = hdnIdMatriculaTurma.Value.Split(','); foreach (var matriculaIdString in matriculasTurmasIds) { int matriculaId; if (int.TryParse(matriculaIdString, out matriculaId)) { var matriculaTurma = new MatriculaTurma(); var manterMatriculaTurma = new ManterMatriculaTurma(); if (matriculaId > 0) { matriculaTurma = manterMatriculaTurma.ObterMatriculaTurmaPorId(matriculaId); // Caso seja Gestor, só altera a matrícula caso seja da sua UF. if (matriculaTurma != null) { questionarioParticipacao.Turma = matriculaTurma.Turma; } } // Alterar Status da matrícula. if (matriculaTurma != null && matriculaTurma.ID != 0) { var manterMatriculaOferta = new ManterMatriculaOferta(); var matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(matriculaTurma.MatriculaOferta.ID); matriculaOferta.StatusMatricula = (enumStatusMatricula)int.Parse(hdnIdStatusMatricula.Value); // Salvar Data de conclusão e nota final em lote if ((!string.IsNullOrWhiteSpace(txtDataConclusao.Text) || !string.IsNullOrWhiteSpace(hdnNotaFinal.Value)) && matriculaOferta.Oferta.SolucaoEducacional.FormaAquisicao.Presencial) { var dataConclusao = CommonHelper.TratarData(txtDataConclusao.Text, "Data Conclusão do lote"); double?notaFinal = null; double n; if (double.TryParse(hdnNotaFinal.Value.Trim(), out n)) { notaFinal = n; } foreach (var mt in matriculaOferta.MatriculaTurma) { if (dataConclusao.HasValue && (!mt.Turma.DataFinal.HasValue || mt.Turma.DataFinal.Value >= dataConclusao)) { mt.DataTermino = dataConclusao; } if (notaFinal.HasValue) { mt.MediaFinal = notaFinal; } } } manterMatriculaOferta.AtualizarMatriculaOferta(matriculaOferta, false); matriculaTurma.DataTermino = !string.IsNullOrEmpty(txtDataConclusao.Text) ? DateTime.Parse(txtDataConclusao.Text) : DateTime.Now; manterMatriculaTurma.AlterarMatriculaTurma(matriculaTurma); } } } } // Salvar participação no questionário. new ManterQuestionarioParticipacao().Salvar(questionarioParticipacao); WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Questionário respondido com Sucesso."); } catch (AcademicoException ex) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message); } }
public SelecionarProvaDeUmAlunoEventArgs(QuestionarioParticipacao provaSelecionada, int idMatriculaTurma) { this.ProvaSelecionada = provaSelecionada; this.IdMatriculaTurma = idMatriculaTurma; }
protected void dgvProvasRealizadas_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) { if (e.Row.RowType.Equals(DataControlRowType.DataRow)) { QuestionarioParticipacao questionarioParticipacao = (QuestionarioParticipacao)e.Row.DataItem; if (questionarioParticipacao != null && questionarioParticipacao.ID > 0) { decimal percObtido; ManterUsuarioTrilha manterUt; UsuarioTrilha ut; var manterQuestionarioParticipacao = new BP.Services.SgusWebService.ManterQuestionarioParticipacao(); manterQuestionarioParticipacao.CalcularPercentualDaProva(questionarioParticipacao, out percObtido, out manterUt, out ut); //Calcula as notas somente para as provas if (questionarioParticipacao.TipoQuestionarioAssociacao != null && questionarioParticipacao.TipoQuestionarioAssociacao.ID.Equals((int)enumTipoQuestionarioAssociacao.Prova)) { decimal notaProva = 0; foreach (ItemQuestionarioParticipacao itemQuestionarioParticipacao in questionarioParticipacao.ListaItemQuestionarioParticipacao) { if (itemQuestionarioParticipacao.ValorAtribuido.HasValue) { notaProva += itemQuestionarioParticipacao.ValorAtribuido.Value; } } Label lblNotaProva = (Label)e.Row.FindControl("lblNotaProva"); lblNotaProva.Text = notaProva.ToString(); } Label lblTipoQuestionarioAssociacao = (Label)e.Row.FindControl("lblTipoQuestionarioAssociacao"); switch (questionarioParticipacao.TipoQuestionarioAssociacao.ID) { case (int)enumTipoQuestionarioAssociacao.Prova: lblTipoQuestionarioAssociacao.Text = "Prova"; break; case (int)enumTipoQuestionarioAssociacao.Pre: if (questionarioParticipacao.Evolutivo) { lblTipoQuestionarioAssociacao.Text = "Diagnóstico Pré"; } else { lblTipoQuestionarioAssociacao.Text = "Questionário Pré"; } break; case (int)enumTipoQuestionarioAssociacao.Pos: if (questionarioParticipacao.Evolutivo) { lblTipoQuestionarioAssociacao.Text = "Diagnóstico Pós"; } else { lblTipoQuestionarioAssociacao.Text = "Questionário Pós"; } break; } } } }
public IList <QuestionarioParticipacao> ObterQuestionarioParticipacaoPorFiltro(QuestionarioParticipacao pQuestionarioParticipacao) { var query = repositorio.session.Query <QuestionarioParticipacao>(); if (pQuestionarioParticipacao.Turma != null) { query = query.Where(x => x.Turma.ID == pQuestionarioParticipacao.Turma.ID); } if (pQuestionarioParticipacao.TurmaCapacitacao != null) { query = query.Where(x => x.TurmaCapacitacao.ID == pQuestionarioParticipacao.TurmaCapacitacao.ID); } if (pQuestionarioParticipacao.TrilhaNivel != null) { query = query.Where(x => x.TrilhaNivel.ID == pQuestionarioParticipacao.TrilhaNivel.ID); } if (pQuestionarioParticipacao.TipoQuestionarioAssociacao != null) { query = query.Where(x => x.TipoQuestionarioAssociacao.ID == pQuestionarioParticipacao.TipoQuestionarioAssociacao.ID); } if (pQuestionarioParticipacao.Usuario != null) { query = query.Where(x => x.Usuario.ID == pQuestionarioParticipacao.Usuario.ID); } if (pQuestionarioParticipacao.Questionario != null) { query = query.Where(x => x.Questionario.ID == pQuestionarioParticipacao.Questionario.ID); } if (pQuestionarioParticipacao.DataGeracao != new DateTime(1, 1, 1)) { query = query.Where(x => x.DataGeracao.Date == pQuestionarioParticipacao.DataGeracao.Date); } query = query.Where(x => x.Evolutivo == pQuestionarioParticipacao.Evolutivo); return(query.ToList()); }
private static DTORelatorioQuestionarioParticipacao PreencherRespostas(IReadOnlyList <DTORelatorioQuestionarioQuestao> listaQuestoes, List <ItemQuestionarioParticipacao> itensQuestionarioParticipacao, List <ItemQuestionarioParticipacaoOpcoes> todasRespostasSelecionadas, QuestionarioParticipacao questionarioParticipacao, List <Usuario> professores) { // Objeto DTO contendo vários dados do clone do questionário. var participacaoDto = ObterObjetoParticipacaoDto(questionarioParticipacao); // Obter nota a partir da opção selecionada, ou texto caso seja questão discursiva. foreach (var itemQuestionario in itensQuestionarioParticipacao) { if (itemQuestionario.InAvaliaProfessor && professores.Any()) { var questoes = listaQuestoes.Where( x => x.Nome.ToLower().Trim() == itemQuestionario.Questao.ToLower().Trim()); foreach (var questao in questoes) { var resposta = new DTORelatorioQuestionarioResposta { Questao = questao }; Usuario professor = null; if (questao.IdProfessor != null) { professor = new Usuario { ID = questao.IdProfessor.Value, Nome = questao.NomeProfessor }; } PreencherResposta(itemQuestionario, resposta, todasRespostasSelecionadas, professor); // Adicionar resposta vinculada à pergunta. participacaoDto.Respostas.Add(resposta); } } else { var resposta = new DTORelatorioQuestionarioResposta { // Relaciona a resposta com a questão através do texto da questão. // Absurdo, mas não tem outra opção de relacionar uma questão clone // com a questão original. Chora, deita e rola... Muito. Questao = listaQuestoes.FirstOrDefault( x => x.Nome.ToLower().Trim() == itemQuestionario.Questao.ToLower().Trim()) }; // Só adiciona a resposta para uma pergunta que exista na lista informada. if (resposta.Questao == null) { continue; } PreencherResposta(itemQuestionario, resposta, todasRespostasSelecionadas); // Adicionar resposta vinculada à pergunta. participacaoDto.Respostas.Add(resposta); } } return(participacaoDto); }