Example #1
0
        public static List <Simulado> ToListSimulado(this List <msp_API_ListarSimulados_Result> list)
        {
            var simulados = new List <Simulado>();

            list.ForEach(x =>
            {
                var simulado = new Simulado();

                simulado.ID                     = x.intSimuladoId;
                simulado.Nome                   = x.txtSimuladoName != null ? x.txtSimuladoName.Trim() : null;
                simulado.Descricao              = x.txtSimuladoDescription != null ? x.txtSimuladoDescription.Trim() : null;
                simulado.Ano                    = (x.intAno ?? 0);
                simulado.CodigoQuestoes         = x.txtCodQuestoes != null ? x.txtCodQuestoes.Trim() : null;
                simulado.Ordem                  = (x.intSimuladoOrdem ?? 0);
                simulado.QtdQuestoes            = x.intQtdQuestoes ?? 50;
                simulado.QtdQuestoesDiscursivas = x.intQtdQuestoesCasoClinico;
                simulado.especialidadeId        = x.especialidadeId;
                simulado.descricaoEspecialidade = x.descricaoEspecialidade;
                simulado.DtHoraInicio           = x.dteDataHoraInicioWEB;
                simulado.DtHoraFim              = x.dteDataHoraTerminoWEB;

                simulados.Add(simulado);
            });

            return(simulados);
        }
        public Simulado GetSimuladoModoProvaConfiguracao(int idSimulado, int matricula, int idAplicacao, string appVersion = "0.0.0")
        {
            try
            {
                using (MiniProfiler.Current.Step("Obtendo configuraĆ§Ć£o simulado modo prova"))
                {
                    var simu = _exercicioRepository.ObterSimulado(idSimulado);
                    var exercicioHistorico = _exercicioRepository.ObterUltimoExercicioSimuladoModoProva(matricula, idSimulado);
                    var jaInicouModoProva  = exercicioHistorico != null;

                    var versaoMinimaComparacao = Utilidades.VersaoMinimaImpressaoSimulado(idAplicacao);

                    var simulado = new Simulado
                    {
                        IdExercicio            = idSimulado,
                        Nome                   = simu.txtSimuladoDescription,
                        QtdQuestoes            = Convert.ToInt32(simu.intQtdQuestoes),
                        QtdQuestoesDiscursivas = Convert.ToInt32(simu.intQtdQuestoesCasoClinico),
                        PermissaoProva         = new PermissaoProva
                        {
                            Cronometro = 1,
                            Impressao  = Utilidades.VersaoMenorOuIgual(appVersion, versaoMinimaComparacao) ? 0 : 1
                        }
                    };

                    if (jaInicouModoProva)
                    {
                        var tempoRestante    = exercicioHistorico.dteDateInicio.AddMinutes(simu.intDuracaoSimulado) - DateTime.Now;
                        var tempoRestanteSeg = exercicioHistorico.dteDateInicio.AddSeconds(simu.intDuracaoSimulado * 60) - DateTime.Now;

                        this.ConfigurarDuracaoSimulado(simulado, Convert.ToInt32(tempoRestante.TotalMinutes), Convert.ToInt32(tempoRestante.TotalSeconds));

                        simulado.CartoesResposta = new CartoesResposta {
                            HistoricoId = exercicioHistorico.intHistoricoExercicioID
                        };
                    }
                    else
                    {
                        this.ConfigurarDuracaoSimulado(simulado, simu.intDuracaoSimulado, simu.intDuracaoSimulado * 60);

                        var historico = _exercicioRepository.InserirExercicioSimulado(idSimulado, matricula, idAplicacao, TipoProvaEnum.ModoProva);

                        simulado.CartoesResposta = new CartoesResposta {
                            HistoricoId = historico.intHistoricoExercicioID
                        };
                    }

                    return(simulado);
                }
            }
            catch
            {
                throw;
            }
        }
Example #3
0
 public ActionResult <Simulado> Post([FromServices] SimuladoDao dao,
                                     [FromBody] Simulado value)
 {
     try
     {
         return(dao.add(value));
     }
     catch (Exception e)
     {
         return(new StatusCodeResult(400));
     }
 }
Example #4
0
 public ActionResult Detalhe(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         Simulado s = Simulado.ListarPorCodigo(codigo);
         if (s != null)
         {
             return(PartialView("_SimuladoDetalhe", s));
         }
     }
     return(Json(string.Empty));
 }
Example #5
0
 public ActionResult CartaoInscricao(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         Simulado s = Simulado.ListarPorCodigo(codigo);
         if (s != null && s.FlagInscricaoEncerrado && s.CandidatoInscrito(Sessao.Candidato.CodCandidato))
         {
             return(View(s.SimCandidato.First(sc => sc.CodCandidato == Sessao.Candidato.CodCandidato)));
         }
     }
     return(null);
 }
Example #6
0
        public ActionResult Confirmado(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                Simulado s = ListarSimuladoAbertoPorCodigo(codigo);
                if (s != null && s.FlagTemVaga && !s.CandidatoInscrito(Sessao.Candidato.CodCandidato))
                {
                    if (Sessao.Candidato.PerfilCompleto)
                    {
                        string numeroMascara = new HashidsNet.Hashids(Configuracoes.Recuperar("SIAC_SECRET") + s.Codigo, 6)
                                               .Encode(s.Ano, s.NumIdentificador, Sessao.Candidato.CodCandidato);

                        var candidato = new SimCandidato()
                        {
                            NumInscricao  = s.ObterNumInscricao(),
                            Candidato     = Sessao.Candidato,
                            DtInscricao   = DateTime.Now,
                            NumeroMascara = numeroMascara
                        };

                        s.SimCandidato.Add(candidato);

                        foreach (var prova in s.Provas)
                        {
                            prova.SimCandidatoProva.Add(new SimCandidatoProva()
                            {
                                SimCandidato = candidato,
                                SimProva     = prova
                            });
                        }

                        Repositorio.Commit();

                        string simuladoUrl = Url.Action("Inscricoes", "Candidato", new { codigo = s.Codigo }, Request.Url.Scheme);
                        EnviarEmail.Inscricao(Sessao.Candidato.Email, Sessao.Candidato.Nome, simuladoUrl, s.Titulo);

                        return(RedirectToAction("Inscricoes", "Candidato", new { codigo = s.Codigo }));
                    }
                    else
                    {
                        return(RedirectToAction("Perfil", "Candidato"));
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
Example #7
0
 public ActionResult Confirmar(string codigo)
 {
     if (!String.IsNullOrWhiteSpace(codigo))
     {
         Simulado s = ListarSimuladoAbertoPorCodigo(codigo);
         if (s != null && s.FlagTemVaga && !s.CandidatoInscrito(Sessao.Candidato.CodCandidato))
         {
             if (Sessao.Candidato.PerfilCompleto)
             {
                 return(View(s));
             }
             else
             {
                 return(RedirectToAction("Perfil", "Candidato"));
             }
         }
     }
     return(RedirectToAction("Index"));
 }
Example #8
0
        public async Task <IEnumerable <SimuladoQuestao> > ObterQuestoes(Simulado simulado)
        {
            var query = Task.Factory.StartNew(() =>
            {
                int instituicaoId = (from inst in db.Instituicoes
                                     join uni in db.Unidades
                                     on inst.Id equals uni.InstituicaoId
                                     where uni.UnidadeCursos.Any(p => p.CursoId.Equals(simulado.CursoId))
                                     select inst).AsNoTracking().AsParallel().FirstOrDefault().Id;

                var composicaoExames = (from ce in db.ComposicaoExames
                                        join mt in db.Materias
                                        on ce.MateriaId equals mt.Id
                                        join inst in db.Instituicoes
                                        on ce.InstituicaoId equals inst.Id
                                        where inst.Id == instituicaoId
                                        select ce).AsNoTracking().AsParallel().ToList();

                List <SimuladoQuestao> simuladoQuestoes = new List <SimuladoQuestao>();

                foreach (var item in composicaoExames)
                {
                    var compExame = db.Questoes
                                    .OrderBy(p => Guid.NewGuid())
                                    .Where(p => p.Topico.MateriaId.Equals(item.MateriaId))
                                    .Take(item.Quantidade).AsParallel();

                    foreach (var questao in compExame)
                    {
                        simuladoQuestoes.Add(new SimuladoQuestao()
                        {
                            Questao  = questao,
                            Simulado = simulado
                        });
                    }
                }
                return(simuladoQuestoes);
            });

            return(await query);
        }
Example #9
0
 public ActionResult Cancelar(string codigo, string simuladoCancelar)
 {
     if (!StringExt.IsNullOrWhiteSpace(codigo, simuladoCancelar))
     {
         Simulado s = Simulado.ListarPorCodigo(codigo);
         if (s != null && s.CandidatoInscrito(Sessao.Candidato.CodCandidato))
         {
             if (codigo.ToLower() == simuladoCancelar.ToLower())
             {
                 SimCandidato simCandidato = s.SimCandidato.First(sc => sc.CodCandidato == Sessao.Candidato.CodCandidato);
                 Repositorio.GetInstance().SimCandidatoProva.RemoveRange(simCandidato.SimCandidatoProva);
                 s.SimCandidato.Remove(simCandidato);
                 Repositorio.Commit();
             }
         }
         return(RedirectToAction("Index"));
     }
     else
     {
         return(RedirectToAction("Inscricoes", "Candidato", new { codigo }));
     }
 }
Example #10
0
        public ActionResult Inscricoes(string codigo)
        {
            if (!String.IsNullOrEmpty(codigo) && codigo.ToLower().StartsWith("simul"))
            {
                Simulado s = Simulado.ListarPorCodigo(codigo);
                if (s != null && s.CandidatoInscrito(Sessao.Candidato.CodCandidato))
                {
                    return(View(s.SimCandidato.First(sc => sc.CodCandidato == Sessao.Candidato.CodCandidato)));
                }
            }
            else
            {
                var model        = new CandidatoInscricoesViewModel();
                int pagina       = String.IsNullOrEmpty(codigo) ? 1 : 0;
                int qtePorPagina = CandidatoInscricoesViewModel.QtePorPagina;
                if (pagina == 0)
                {
                    int.TryParse(codigo, out pagina);
                }

                if (pagina > 0)
                {
                    List <Simulado> lista = Sessao.Candidato.SimCandidato
                                            .Select(sc => sc.Simulado)
                                            .Distinct()
                                            .OrderByDescending(d => d.PrimeiroDiaRealizacao?.DtRealizacao)
                                            .ToList();
                    model.Simulados  = lista.Skip(qtePorPagina * pagina - qtePorPagina).Take(qtePorPagina).ToList();
                    model.TemProxima = lista.Count > qtePorPagina;
                }

                return(View("ListaInscricoes", model));
            }

            return(RedirectToAction("Index"));
        }
Example #11
0
 // GET: simulado/inscricao
 public ActionResult Index() => View(new InscricaoIndexViewModel()
 {
     Simulados = Simulado.ListarParaInscricoes()
 });
Example #12
0
 private Simulado ListarSimuladoAbertoPorCodigo(string codigo) =>
 Simulado.ListarParaInscricoes().FirstOrDefault(sim => sim.Codigo.ToLower() == codigo.ToLower());
Example #13
0
 public ActionResult Index() => View(new CandidatoIndexViewModel()
 {
     Inscritos = Simulado.ListarNaoEncerradoOrdenadamente().Where(s => s.CandidatoInscrito(Sessao.Candidato.CodCandidato)).ToList(),
     Passados  = Simulado.ListarEncerradoOrdenadamente().Where(s => s.CandidatoInscrito(Sessao.Candidato.CodCandidato)).ToList()
 });
 private void ConfigurarDuracaoSimulado(Simulado simulado, int duracao, int duracaoEmSegundos)
 {
     simulado.DuracaoEmSeg = duracaoEmSegundos;
     simulado.Duracao      = duracao;
 }