Esempio n. 1
0
 /// <summary>
 /// Constructor de la pregunta
 /// </summary>
 /// <param name="pPregunta"></param>
 /// <param name="pRespuestaCorrecta"></param>
 /// <param name="pRespuestasIncorrectas"></param>
 /// <param name="pDificultad"></param>
 /// <param name="pCategoria"></param>
 /// <param name="pConjunto"></param>
 public Pregunta(string pPregunta, string pRespuestaCorrecta, List <string> pRespuestasIncorrectas, Dificultad pDificultad, CategoriaPregunta pCategoria, ConjuntoPreguntas pConjunto)
 {
     Id = pPregunta;
     RespuestaCorrecta    = pRespuestaCorrecta;
     Dificultad           = pDificultad;
     Categoria            = pCategoria;
     Conjunto             = pConjunto;
     RespuestaIncorrecta1 = pRespuestasIncorrectas[0];
     RespuestaIncorrecta2 = pRespuestasIncorrectas[1];
     RespuestaIncorrecta3 = pRespuestasIncorrectas[2];
 }
Esempio n. 2
0
        /// <summary>
        /// Metodo para poder obtener preguntas de la pagina de OpentDB
        /// </summary>
        /// <param name="pCantidad"></param>
        /// <param name="pConjunto"></param>
        /// <param name="pDificultad"></param>
        /// <param name="pCategoria"></param>
        /// <returns></returns>
        public override List <Pregunta> getPreguntas(string pCantidad, string pConjunto, string pDificultad, CategoriaPregunta pCategoria)
        {
            {
                // Establecimiento del protocolo ssl de transporte
                System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

                CultureInfo provider = new CultureInfo("en-us");
                // Creacion de URL
                var mUrl = CrearURL(pCantidad, pDificultad, pCategoria.OpentDbId.ToString(provider));


                // Se crea el request http
                HttpWebRequest mRequest = (HttpWebRequest)WebRequest.Create(mUrl);

                try
                {
                    // Se ejecuta la consulta
                    WebResponse mResponse = mRequest.GetResponse();

                    // Se obtiene los datos de respuesta
                    using (Stream responseStream = mResponse.GetResponseStream())
                    {
                        StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

                        // Se parsea la respuesta y se serializa a JSON a un objeto dynamic
                        dynamic mResponseJSON = JsonConvert.DeserializeObject(reader.ReadToEnd());

                        // Se iteran cada uno de los resultados.
                        foreach (var bResponseItem in mResponseJSON.results)
                        {
                            // De esta manera se accede a los componentes de cada item
                            string            pregunta          = HttpUtility.HtmlDecode(bResponseItem.question.ToString());
                            string            respuestaCorrecta = HttpUtility.HtmlDecode(bResponseItem.correct_answer.ToString());
                            CategoriaPregunta categoria         = new CategoriaPregunta(bResponseItem.category.ToString());
                            Dificultad        dificultad        = new Dificultad(HttpUtility.HtmlDecode(bResponseItem.difficulty.ToString()));
                            List <string>     incorrectas       = bResponseItem.incorrect_answers.ToObject <List <string> >();
                            List <string>     respIncorrectas   = new List <string>();
                            foreach (string respInc in incorrectas)
                            {
                                string respuestaIncorrecta = HttpUtility.HtmlDecode(respInc);
                                respIncorrectas.Add(respuestaIncorrecta);
                            }

                            Pregunta preg = new Pregunta(pregunta, respuestaCorrecta, respIncorrectas, dificultad, categoria, new ConjuntoPreguntas(pConjunto));

                            //se agrega cada una de las preguntas a la lista
                            listaPreguntas.Add(preg);
                        }
                    }
                }
                catch (WebException ex)
                {
                    Bitacora.GuardarLog(ex.Message);

                    /*       WebResponse mErrorResponse = ex.Response;
                     *     using (Stream mResponseStream = mErrorResponse.GetResponseStream())
                     *     {
                     *         StreamReader mReader = new StreamReader(mResponseStream, Encoding.GetEncoding("utf-8"));
                     *         String mErrorText = mReader.ReadToEnd();
                     *     }*/
                }
                catch (Exception ex)
                {
                }
                return(listaPreguntas);
            }
        }