// GET: principal/autoavaliacao/detalhe/AUTO201520001 public ActionResult Detalhe(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAuto auto = AvalAuto.ListarPorCodigoAvaliacao(codigo); int codPessoaFisica = Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodPessoaFisica; if (auto != null) { if (auto.CodPessoaFisica == codPessoaFisica) { var model = new AutoavaliacaoDetalheViewModel(); model.Avaliacao = auto.Avaliacao; if (auto.Avaliacao.AvalPessoaResultado.Count > 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.First(); if (avalTemaQuestao.QuestaoTema.Questao.CodTipoQuestao == TipoQuestao.OBJETIVA) { qteObjetivaDisciplina[avaliacaoTema.Tema.Disciplina.Descricao]++; qteObjetiva++; if (avalTemaQuestao.QuestaoTema.Questao.Alternativa.First(q => q.FlagGabarito).CodOrdem == avalQuesPessoaResposta.RespAlternativa) { qteObjetivaAcertoDisciplina[avaliacaoTema.Tema.Disciplina.Descricao]++; } } } } model.Porcentagem = (auto.Avaliacao.AvalPessoaResultado.First().QteAcertoObj.Value / qteObjetiva) * 100; foreach (var chave in qteObjetivaDisciplina.Keys) { if (qteObjetivaDisciplina[chave] > 0) { model.Desempenho.Add(chave, (qteObjetivaAcertoDisciplina[chave] / qteObjetivaDisciplina[chave]) * 100); } } } return(View(model)); } } } return(RedirectToAction("Index")); }
// GET: principal/autoavaliacao/imprimir/AUTO201520001 public ActionResult Imprimir(string codigo) { if (!String.IsNullOrWhiteSpace(codigo)) { AvalAuto auto = AvalAuto.ListarPorCodigoAvaliacao(codigo); if (auto.CodPessoaFisica == Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodPessoaFisica) { return(View(auto)); } } return(RedirectToAction("index")); }
// GET: principal/autoavaliacao/realizar/AUTO201520001 public ActionResult Realizar(string codigo) { int codPessoaFisica = Sistema.UsuarioAtivo[Sessao.UsuarioMatricula].Usuario.CodPessoaFisica; if (!String.IsNullOrWhiteSpace(codigo)) { AvalAuto auto = AvalAuto.ListarPorCodigoAvaliacao(codigo); if (auto.CodPessoaFisica == codPessoaFisica && !auto.Avaliacao.FlagRealizada) { return(View(auto)); } return(RedirectToAction("Index")); } else { var model = new AutoavaliacaoNovoViewModel(); model.Geradas = AvalAuto.ListarNaoRealizadaPorPessoa(codPessoaFisica); return(View("Novo", model)); } }
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")); }