public ActionResult Justificar(string codigo, Dictionary <string, string> justificacao) { AvalAcademica aval = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (aval.Professor.Usuario.Matricula == Sessao.UsuarioMatricula) { if (Usuario.Verificar(justificacao["senha"])) { Aluno aluno = Aluno.ListarPorMatricula(justificacao["aluno"]); AvalPessoaResultado apr = aval.Avaliacao.AvalPessoaResultado.FirstOrDefault(p => p.CodPessoaFisica == aluno.Usuario.CodPessoaFisica); if (apr == null) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = aluno.Usuario.CodPessoaFisica; avalPessoaResultado.HoraTermino = aval.Avaliacao.DtAplicacao; avalPessoaResultado.QteAcertoObj = 0; avalPessoaResultado.Nota = 0; avalPessoaResultado.Justificacao.Add(new Justificacao() { Professor = aval.Professor, DtCadastro = DateTime.Parse(justificacao["cadastro"], new CultureInfo("pt-BR")), DtConfirmacao = DateTime.Parse(justificacao["confirmacao"], new CultureInfo("pt-BR")), Descricao = justificacao["descricao"] }); aval.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); } } } return(null); }
public ActionResult DetalheIndividual(string codigo, int pessoa) { if (!StringExt.IsNullOrWhiteSpace(codigo)) { AvalCertificacao cert = AvalCertificacao.ListarPorCodigoAvaliacao(codigo); if (cert != null) { AvalPessoaResultado model = cert.Avaliacao.AvalPessoaResultado.FirstOrDefault(r => r.CodPessoaFisica == pessoa); if (model != null) { return(PartialView("_Individual", model)); } } } return(null); }
public ActionResult DetalheIndividual(string codigo, string matricula) { if (!StringExt.IsNullOrWhiteSpace(codigo, matricula)) { AvalAcademica acad = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (acad != null) { int codPessoaFisica = Usuario.ObterPessoaFisica(matricula); AvalPessoaResultado model = acad.Avaliacao.AvalPessoaResultado.SingleOrDefault(r => r.CodPessoaFisica == codPessoaFisica); if (model != null) { return(PartialView("_Individual", model)); } } } return(null); }
public void Desistir(string codigo) { int codPessoaFisica = Usuario.ObterPessoaFisica(Sessao.UsuarioMatricula); if (!String.IsNullOrWhiteSpace(codigo)) { AvalCertificacao aval = AvalCertificacao.ListarPorCodigoAvaliacao(codigo); if (aval.PessoaFisica.FirstOrDefault(a => a.CodPessoa == codPessoaFisica) != null && aval.Avaliacao.AvalPessoaResultado.FirstOrDefault(a => a.CodPessoaFisica == codPessoaFisica) == null) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = codPessoaFisica; avalPessoaResultado.HoraTermino = DateTime.Now; avalPessoaResultado.QteAcertoObj = 0; avalPessoaResultado.Nota = 0; foreach (var avaliacaoTema in aval.Avaliacao.AvaliacaoTema) { foreach (var avalTemaQuestao in avaliacaoTema.AvalTemaQuestao) { var avalQuesPessoaResposta = new AvalQuesPessoaResposta(); avalQuesPessoaResposta.CodPessoaFisica = codPessoaFisica; if (avalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == 1) { avalQuesPessoaResposta.RespAlternativa = -1; } avalQuesPessoaResposta.RespNota = 0; avalTemaQuestao.AvalQuesPessoaResposta.Add(avalQuesPessoaResposta); } } aval.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); Sessao.Inserir("RealizandoAvaliacao", false); } } }
public ActionResult Resultado(string codigo, FormCollection form) { int codPessoaFisica = Usuario.ObterPessoaFisica(Helpers.Sessao.UsuarioMatricula); if (!String.IsNullOrWhiteSpace(codigo)) { AvalAcademica aval = AvalAcademica.ListarPorCodigoAvaliacao(codigo); if (aval.Alunos.SingleOrDefault(a => a.MatrAluno == Sessao.UsuarioMatricula) != null && aval.Avaliacao.AvalPessoaResultado.SingleOrDefault(a => a.CodPessoaFisica == codPessoaFisica) == null) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = codPessoaFisica; avalPessoaResultado.HoraTermino = DateTime.Now; avalPessoaResultado.QteAcertoObj = 0; double quantidadeObjetiva = 0; foreach (var avaliacaoTema in aval.Avaliacao.AvaliacaoTema) { foreach (var avalTemaQuestao in avaliacaoTema.AvalTemaQuestao) { var avalQuesPessoaResposta = new AvalQuesPessoaResposta(); avalQuesPessoaResposta.CodPessoaFisica = codPessoaFisica; if (avalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.OBJETIVA) { quantidadeObjetiva++; int respAlternativa = -1; string strRespAlternativa = form["rdoResposta" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao]; if (!String.IsNullOrWhiteSpace(strRespAlternativa)) { int.TryParse(strRespAlternativa, out respAlternativa); } avalQuesPessoaResposta.RespAlternativa = respAlternativa; if (avalTemaQuestao.QuestaoTema.Questao.Alternativa.First(q => q.FlagGabarito).CodOrdem == avalQuesPessoaResposta.RespAlternativa) { avalQuesPessoaResposta.RespNota = 10; avalPessoaResultado.QteAcertoObj++; } else { avalQuesPessoaResposta.RespNota = 0; } } else { avalQuesPessoaResposta.RespDiscursiva = form["txtResposta" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao].Trim(); } avalQuesPessoaResposta.RespComentario = !String.IsNullOrWhiteSpace(form["txtComentario" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao]) ? form["txtComentario" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao].Trim() : null; avalTemaQuestao.AvalQuesPessoaResposta.Add(avalQuesPessoaResposta); } } IEnumerable <AvalQuesPessoaResposta> lstAvalQuesPessoaResposta = aval.Avaliacao.PessoaResposta.Where(r => r.CodPessoaFisica == codPessoaFisica); avalPessoaResultado.Nota = lstAvalQuesPessoaResposta.Average(r => r.RespNota); aval.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); var model = new AvaliacaoResultadoViewModel(); model.Avaliacao = aval.Avaliacao; model.Porcentagem = (avalPessoaResultado.QteAcertoObj.Value / quantidadeObjetiva) * 100; Sessao.Inserir("RealizandoAvaliacao", false); return(View(model)); } return(RedirectToAction("Detalhe", new { codigo = aval.Avaliacao.CodAvaliacao })); } return(RedirectToAction("Index")); }
public ActionResult Resultado(string codigo, FormCollection form) { int codPessoaFisica = Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodPessoaFisica; if (!String.IsNullOrWhiteSpace(codigo) && form.HasKeys()) { AvalAuto auto = AvalAuto.ListarPorCodigoAvaliacao(codigo); if (auto.Avaliacao.AvalPessoaResultado.Count == 0 && auto.CodPessoaFisica == codPessoaFisica) { var avalPessoaResultado = new AvalPessoaResultado(); avalPessoaResultado.CodPessoaFisica = codPessoaFisica; avalPessoaResultado.HoraTermino = DateTime.Now; avalPessoaResultado.QteAcertoObj = 0; double qteObjetiva = 0; Dictionary <string, double> qteObjetivaDisciplina = new Dictionary <string, double>(); Dictionary <string, double> qteObjetivaAcertoDisciplina = new Dictionary <string, double>(); foreach (var avaliacaoTema in auto.Avaliacao.AvaliacaoTema) { if (!qteObjetivaDisciplina.ContainsKey(avaliacaoTema.Tema.Disciplina.Descricao)) { qteObjetivaDisciplina.Add(avaliacaoTema.Tema.Disciplina.Descricao, 0); } if (!qteObjetivaAcertoDisciplina.ContainsKey(avaliacaoTema.Tema.Disciplina.Descricao)) { qteObjetivaAcertoDisciplina.Add(avaliacaoTema.Tema.Disciplina.Descricao, 0); } foreach (var avalTemaQuestao in avaliacaoTema.AvalTemaQuestao) { AvalQuesPessoaResposta avalQuesPessoaResposta = avalTemaQuestao.AvalQuesPessoaResposta.FirstOrDefault(r => r.PessoaFisica.CodPessoa == codPessoaFisica); if (avalQuesPessoaResposta == null) { avalQuesPessoaResposta = new AvalQuesPessoaResposta(); } avalQuesPessoaResposta.CodPessoaFisica = codPessoaFisica; if (avalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.OBJETIVA) { qteObjetivaDisciplina[avaliacaoTema.Tema.Disciplina.Descricao]++; qteObjetiva++; avalQuesPessoaResposta.RespAlternativa = int.Parse(form["rdoResposta" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao]); if (avalTemaQuestao.QuestaoTema.Questao.Alternativa.First(q => q.FlagGabarito).CodOrdem == avalQuesPessoaResposta.RespAlternativa) { avalPessoaResultado.QteAcertoObj++; avalQuesPessoaResposta.RespNota = 10; qteObjetivaAcertoDisciplina[avaliacaoTema.Tema.Disciplina.Descricao]++; } else { avalQuesPessoaResposta.RespNota = 0; } } else { avalQuesPessoaResposta.RespDiscursiva = form["txtResposta" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao].Trim(); } avalQuesPessoaResposta.RespComentario = !String.IsNullOrWhiteSpace(form["txtComentario" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao]) ? form["txtComentario" + avalTemaQuestao.QuestaoTema.Questao.CodQuestao].Trim() : null; avalTemaQuestao.AvalQuesPessoaResposta.Add(avalQuesPessoaResposta); } } IEnumerable <AvalQuesPessoaResposta> lstAvalQuesPessoaResposta = auto.Avaliacao.PessoaResposta.Where(r => r.CodPessoaFisica == codPessoaFisica); avalPessoaResultado.Nota = lstAvalQuesPessoaResposta.Average(r => r.RespNota); auto.Avaliacao.AvalPessoaResultado.Add(avalPessoaResultado); Repositorio.Commit(); var model = new AvaliacaoResultadoViewModel(); model.Avaliacao = auto.Avaliacao; model.Porcentagem = (avalPessoaResultado.QteAcertoObj.Value / qteObjetiva) * 100; foreach (var chave in qteObjetivaDisciplina.Keys) { if (qteObjetivaDisciplina[chave] > 0) { model.Desempenho.Add(chave, (qteObjetivaAcertoDisciplina[chave] / qteObjetivaDisciplina[chave]) * 100); } } Lembrete.AdicionarNotificacao($"AutoavaliaĆ§Ć£o {auto.Avaliacao.CodAvaliacao} realizada. Confira seu resultado!"); return(View(model)); } return(RedirectToAction("Detalhe", new { codigo = auto.Avaliacao.CodAvaliacao })); } return(RedirectToAction("Realizar")); }