public PreguntaDTO GetPregunta(int nivel, out string msj) { msj = ""; Random rnd = new Random(); if (listaPreguntas.Count() < 1) { msj = "Se han acabado las preguntas de este nivel"; return(null); } int aleatorio = rnd.Next(0, listaPreguntas.Count()); PreguntaDTO pregunta = listaPreguntas[aleatorio]; listaPreguntas.RemoveAt(aleatorio); return(pregunta); //Random rnd = new Random(); //List<PreguntaDTO> listaABorrar = gestDatos.PreguntasDeNivel(nivel, out string msg); //msj = msg; //if (msj != "") //{ // return null; //} //int aleatorio = rnd.Next(1, listaABorrar.Count); //PreguntaDTO pregunta = listaABorrar[aleatorio]; //listaABorrar.RemoveAt(aleatorio); //return pregunta; }
private void SiguientePregunta() { preguntaActual = fachada.ObtenerPreguntaYRespuestas(FinTiempoLimite, ActualizarTimer, idSesionActual); lblPregunta.Text = preguntaActual.Pregunta; btnRespuesta1.Text = preguntaActual.Respuestas[0].Respuesta; btnRespuesta1.Enabled = true; btnRespuesta1.BackColor = System.Drawing.SystemColors.Control; btnRespuesta2.Text = preguntaActual.Respuestas[1].Respuesta; btnRespuesta2.Enabled = true; btnRespuesta2.BackColor = System.Drawing.SystemColors.Control; btnRespuesta3.Text = preguntaActual.Respuestas[2].Respuesta; btnRespuesta3.Enabled = true; btnRespuesta3.BackColor = System.Drawing.SystemColors.Control; btnRespuesta4.Text = preguntaActual.Respuestas[3].Respuesta; btnRespuesta4.Enabled = true; btnRespuesta4.BackColor = System.Drawing.SystemColors.Control; lblRespuestasActuales.Text = (int.Parse(lblRespuestasActuales.Text) + 1).ToString(); btnSiguiente.Enabled = false; }
public void mostrarPregunta(PreguntaDTO unaPregunta) //Muestra una pregunta con sus opciones { preg.Text += unaPregunta.Id; //Muestro la Pregunta en el Label var respuestas = ControladorPreguntas.RespuestasDePregunta(iPreguntas[iNumeroPregunta]); List <RespuestaDTO> opciones = new List <RespuestaDTO>(); //Almacena las 4 opciones de respuestas foreach (RespuestaDTO respuesta in respuestas) { opciones.Add(respuesta); } List <RespuestaDTO> listaDesordenada = new List <RespuestaDTO>(); Random rnd = new Random(); while (opciones.Count > 0) //Desordena la Lista { int i = rnd.Next(opciones.Count); listaDesordenada.Add(opciones[i]); opciones.RemoveAt(i); } foreach (RespuestaDTO opcion in listaDesordenada) //Muestra las preguntas en RadioButtons { RadioButton rb = new RadioButton(); rb.Text = opcion.Texto; rb.Name = opcion.Id.ToString(); flowLayoutPanel1.Controls.Add(rb); } }
/// <summary> /// Inicia el temporizador y devuelve un PreguntaDTO correspondiente a la siguiente de la sesión /// </summary> /// <param name="pOnTimeFinishedHandler">La acción a realizar cuando se agota el tiempo límite</param> /// <param name="pOnTickTimer">La acción a realizar por cada tick</param> /// <param name="pIdSesionActual">El ID de la sesión actual</param> /// <returns></returns> public PreguntaDTO ObtenerPreguntaYRespuestas(Action pOnTimeFinishedHandler, Action <int> pOnTickTimer, int pIdSesionActual) { Random random = new Random(); PreguntaDTO preguntaYRespuestas = new PreguntaDTO(); Sesion sesionActual = ServiciosSesion.ObtenerSesion(pIdSesionActual); Pregunta pregunta = ServiciosPregunta.ObtenerPregunta(sesionActual.ObtenerIdSiguientePregunta()); int tiempoRestante = Convert.ToInt32(sesionActual.TiempoLimite() - sesionActual.SegundosTranscurridos); ayudanteTimer = new AyudanteTimer(tiempoRestante, pOnTimeFinishedHandler, pOnTickTimer); preguntaYRespuestas.IdPregunta = pregunta.PreguntaId; preguntaYRespuestas.Pregunta = pregunta.Nombre; RespuestaDTO respuestaActualDTO; List <RespuestaDTO> listaDeRespuestas = new List <RespuestaDTO>(); foreach (Respuesta respuesta in pregunta.Respuestas) { respuestaActualDTO = new RespuestaDTO(); respuestaActualDTO.IdRespuesta = respuesta.RespuestaId; respuestaActualDTO.Respuesta = respuesta.DefRespuesta; listaDeRespuestas.Add(respuestaActualDTO); } preguntaYRespuestas.Respuestas = listaDeRespuestas.OrderBy(x => random.Next()).ToList(); return(preguntaYRespuestas); }
public PreguntaRespuestaDTO Add(PreguntaDTO preguntaDTO) { var pregunta = this._mapper.Map <Pregunta>(preguntaDTO); this.Repository.Add(pregunta); return(this._mapper.Map <PreguntaRespuestaDTO>(pregunta)); }
public List <SeccionDTO> GenerarEncuestaPrueba() { List <SeccionDTO> listaSeccion = new List <SeccionDTO>(); for (int i = 0; i < 4; i++) { SeccionDTO nuevoS = new SeccionDTO(); nuevoS.Nombre = "Seccion" + i.ToString(); nuevoS.IdEncuesta = 1; nuevoS.Orden = i; List <PreguntaDTO> listaPregunta = new List <PreguntaDTO>(); for (int j = 0; j < 4; j++) { PreguntaDTO nuevaP = new PreguntaDTO(); nuevaP.IdPregunta = (10 + i) * 10 + j; switch (j) { case 0: nuevaP.Descripcion = "¿Como calificaria el servicio ofrecido durante los 3 ultimos meses?"; break; case 1: nuevaP.Descripcion = "¿Como calificarias el desempeño de los trabajadores?"; break; case 2: nuevaP.Descripcion = "¿Como calificarias la calidad de respuesta de tu asesor?"; break; case 3: nuevaP.Descripcion = "¿Como calificarias el nivel de atención de los profesionales asociados?"; break; } nuevaP.IdSeccion = i; nuevaP.OrdenPregunta = j; listaPregunta.Add(nuevaP); } List <SeccionDTO> listaSecciones = new List <SeccionDTO>(); for (int k = 0; k < 4; k++) { SeccionDTO auxSec = new SeccionDTO(); auxSec.IdSeccionPadre = i; auxSec.IdSeccion = k; auxSec.Nombre = "SeccionAux" + k.ToString(); auxSec.Orden = k; listaSecciones.Add(auxSec); } nuevoS.Preguntas = listaPregunta; nuevoS.SubSecciones = listaSecciones; listaSeccion.Add(nuevoS); } return(listaSeccion); }
// POST: api/Pregunta public Object Post(PreguntaDTO pregunta) { string BASE_URL = System.Configuration.ConfigurationManager.AppSettings["BASE_URL"].ToString(); string BASE_PATH = System.Configuration.ConfigurationManager.AppSettings["BASE_IMAGES_PATH"].ToString(); pregunta.Imagen = BASE_URL + BASE_PATH + "/default.png"; BusinessLogic.Controllers.PreguntaController preguntaController = new BusinessLogic.Controllers.PreguntaController(); var preguntaCreada = preguntaController.Create(pregunta); return(new ResponseDTO(preguntaCreada, "Se ha creado la pregunta correctamente.", true)); }
public ActionResult AddPregunta(PreguntaDTO dto) { if (!this.currentUser()) { return(RedirectToAction("Ingresar")); } try { PreguntaBL objBL = new PreguntaBL(); if (dto.IdPregunta == 0) { if (objBL.add(dto)) { createResponseMessage(CONSTANTES.SUCCESS); return(RedirectToAction("Encuesta", new { id = dto.IdEncuesta })); } else { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE); } } else if (dto.IdPregunta != 0) { if (objBL.update(dto)) { createResponseMessage(CONSTANTES.SUCCESS); return(RedirectToAction("Encuesta", new { id = dto.IdEncuesta })); } else { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE); } } else { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE); } } catch { if (dto.IdPregunta != 0) { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE); } else { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_MESSAGE); } } TempData["Pregunta"] = dto; return(RedirectToAction("Encuesta")); }
private void Jugar(int nivel) { preguntaDto = Program.gest.PreguntasNivel(nivel, out String msj); if (msj != null) { if (msj.Equals("Error")) { return; } if (msj.Contains("nivel máximo")) { VaciarControles(); } MessageBox.Show(msj, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); if (msj.Contains("No disponemos")) { AciertosFallos("noDisponemos", 1); } return; } int num = 12; VaciarControles(); lblTiempo.Text = tiempo.ToString(); tmrTiempoTotal.Start(); lblNivel.Text = preguntaDto.Nivel.ToString(); lblEnunciado.Text = preguntaDto.Enunciado; num = 12; Controls.OfType <Button>().ToList().ForEach(button => { if (button.Name == "btn" + num) { button.Text = preguntaDto.Respuestas[num - 1].PosibleRespuesta; num -= 1; } }); // foreach (Control control in frm.Controls) { } // for (int i = 0; i < Controls.OfType<Button>().Count(); i++) { } /*foreach (var button in Controls.OfType<Button>()) { * if (button.Name == "btn"+num) { * button.Text = preguntaDto.Respuestas[num-1].PosibleResuesta; * num -= 1; * } * }*/ }
public PreguntaDTO ObtenerPreguntaAleatoria() { int max = preguntas.Count; if (max == 0) { return(null); } int indicePregunta = rnd.Next(0, max); PreguntaDTO pregunta = preguntas[indicePregunta]; preguntas.RemoveAt(indicePregunta); return(pregunta); }
public bool add(PreguntaDTO preguntaDTO) { using (var context = getContext()) { try { Pregunta pregunta = new Pregunta(); context.Pregunta.Add(pregunta); context.SaveChanges(); return(true); } catch (Exception e) { throw e; //return false; } } }
public static IEnumerable <PreguntaDTO> GetPreguntasDeExamen(int examenId) { List <PreguntaDTO> preguntas = new List <PreguntaDTO>(); using (var db = new TrabajoDbContext()) { using (var UoW = new UnitOfWork(db)) { foreach (var examenPregunta in UoW.ExamenRepository.Get(examenId).ExamenPreguntas) { Pregunta pregunta = UoW.RepositorioPreguntas.Get(examenPregunta.PreguntaId); PreguntaDTO preguntaDTO = new PreguntaDTO(pregunta); preguntas.Add(preguntaDTO); } } } return(preguntas); }
public Object Create(PreguntaDTO pregunta) { try { using (ModelosDBContainer context = new ModelosDBContainer()) { PreguntaRepository repositorio = new PreguntaRepository(context); var preg = this._mapper.Map <Pregunta>(pregunta); repositorio.Create(preg); context.SaveChanges(); return(preg); } } catch (Exception ex) { throw ex; } }
public void NextPregunta() { this.nivelActual = Program.nivelSeleccionado; txt_Nivel.Text = nivelActual.ToString(); timer1.Enabled = true; contador = 61; HabilitarBotones(); ColorBotones(); numValidas = 0; numNoValidas = 0; pregunta = gestNegocio.GetPregunta(nivelActual, out String msj); if (msj != "") { DialogResult dialogResult = MessageBox.Show(msj + ", Quieres ir al siguiente nivel", "Atención", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { //siguiente nivel Program.nivelSeleccionado++; NextNivel(Program.nivelSeleccionado); } else if (dialogResult == DialogResult.No) { //Finalizar programa FinalizarPrograma(); } return; } //Enunciado txt_Enunciado.Text = pregunta.Enunciado; //Respuestas btn_1.Text = (pregunta.RespuestasDTO[0].PosibleRespuesta); btn_2.Text = (pregunta.RespuestasDTO[1].PosibleRespuesta); btn_3.Text = (pregunta.RespuestasDTO[2].PosibleRespuesta); btn_4.Text = (pregunta.RespuestasDTO[3].PosibleRespuesta); btn_5.Text = (pregunta.RespuestasDTO[4].PosibleRespuesta); btn_6.Text = (pregunta.RespuestasDTO[5].PosibleRespuesta); btn_7.Text = (pregunta.RespuestasDTO[6].PosibleRespuesta); btn_8.Text = (pregunta.RespuestasDTO[7].PosibleRespuesta); btn_9.Text = (pregunta.RespuestasDTO[8].PosibleRespuesta); btn_10.Text = (pregunta.RespuestasDTO[9].PosibleRespuesta); btn_11.Text = (pregunta.RespuestasDTO[10].PosibleRespuesta); btn_12.Text = (pregunta.RespuestasDTO[11].PosibleRespuesta); }
/// <summary> /// Guarda el resultado de un examen para una pregunta y su respuesta /// Almacena el resultado de la respuesta /// </summary> /// <exception cref="ArgumentException"></exception> /// <param name="pExamen"></param> /// <param name="pPregunta"></param> /// <param name="pRespuesta"></param> /// <returns>Examen actualizado</returns> public static ExamenDTO GuardarRespuesta(ExamenDTO pExamen, PreguntaDTO pPregunta, int idRespuesta) { Examen examen; using (var db = new TrabajoDbContext()) { using (var UoW = new UnitOfWork(db)) { examen = UoW.ExamenRepository.Get(pExamen.Id); var respuesta = UoW.RepositorioPreguntas.Get(pPregunta.Id).Respuestas.Where(r => r.Id == idRespuesta); if (!respuesta.Any()) { throw new ArgumentException(String.Format("Respuesta {0} no existe", idRespuesta)); } examen.ExamenPreguntas.First(e => e.PreguntaId == pPregunta.Id).RespuestaElegidaId = idRespuesta; UoW.Complete(); } } return(new ExamenDTO(examen)); }
public static IEnumerable <RespuestaDTO> RespuestasDePregunta(PreguntaDTO pPregunta) { Pregunta pre; using (var db = new TrabajoDbContext()) { using (var UoW = new UnitOfWork(db)) { pre = UoW.RepositorioPreguntas.Get(pPregunta.Id); } } var respuestas = new List <RespuestaDTO>(); foreach (var r in pre.Respuestas) { respuestas.Add(new RespuestaDTO(r)); } return(respuestas); }
private void SacarPreguntaAlazar() { lblRespuestaValida.Text = null; ResetearBotonesRespuesta(); acertadas = 0; falladas = 0; PreguntaDTO pregunta = gestionNg.ObtenerPreguntaAleatoria(); if (pregunta == null) { nivel++; gestionNg.PreguntasDeNivel(nivel, out string pregsDeNivelError); if (!String.IsNullOrWhiteSpace(pregsDeNivelError)) { MessageBox.Show("No quedan más niveles", "FIN DEL JUEGO"); this.Close(); return; } SacarPreguntaAlazar(); lblNivel.Text = nivel.ToString(); return; } lblEnunciado.Text = pregunta.Enunciado; int indexRespuesta = 0; foreach (Button btn in this.Controls.OfType <Button>()) { if (btn.Tag != null && btn.Name.ToString().ToLower().Contains("btnrespuesta")) { btn.Text = pregunta.Respuestas[indexRespuesta].PosibleRespuesta; btn.Tag = pregunta.Respuestas[indexRespuesta++].Explicacion; } } segundos = 15; lblTiempo.Text = segundos.ToString(); tmrTiempoTotal.Interval = 1000; tmrTiempoTotal.Start(); }
public bool update(PreguntaDTO preguntaDTO) { using (var context = getContext()) { try { var pregunta = context.Pregunta.Where(x => x.IdPregunta == preguntaDTO.IdPregunta).SingleOrDefault(); pregunta.Texto = preguntaDTO.Texto; pregunta.Descripcion = preguntaDTO.Descripcion; pregunta.Orden = preguntaDTO.OrdenPregunta; pregunta.IdTipoRespuesta = preguntaDTO.IdTipoRespuesta; pregunta.Estado = preguntaDTO.EstadoPregunta; context.SaveChanges(); preguntaDTO.IdEncuesta = pregunta.Seccion.IdEncuesta; return(true); } catch (Exception e) { //throw e; return(false); } } }
public PreguntaDTO PreguntasNivel(int nivel, out String mensaje) { Random rnd = new Random(); List <PreguntaDTO> preguntasList = datosDSet.PreguntasDeNivel(nivel, out String msj); if (!msj.Equals("")) { mensaje = msj; return(null); } if (error == true) { mensaje = "Error"; return(null); } int numPreg = rnd.Next(preguntasList.Count()); PreguntaDTO pregunta = preguntasList[numPreg]; mensaje = null; return(pregunta); }