protected bool parametrosValidos(RequestStudentAnswers Parametros, ref string mensaje)
        {
            bool   valido            = true;
            string mensajeParametros = "Parámetros incorrectos: ";

            if (Parametros.RQ.user_number == null || Parametros.RQ.user_number.Trim() == "")
            {
                mensajeParametros += "user_number ";
                valido             = false;
            }
            if (Parametros.RQ.user_password == null || Parametros.RQ.user_password.Trim() == "")
            {
                mensajeParametros += "user_password ";
                valido             = false;
            }
            if (Parametros.RQ.ID_lesson == null || Parametros.RQ.ID_lesson > -1)
            {
                mensajeParametros += "ID_lesson ";
                valido             = false;
            }
            if (Parametros.RQ.Questions == null || Parametros.RQ.Questions.Count == 0)
            {
                mensajeParametros += "Questions ";
                valido             = false;
            }
            mensaje = mensajeParametros;
            return(valido);
        }
        public String TakeLesson()
        {
            String JSON;

            try
            {
                Response.ContentType = "application/json; charset=UTF-8";
                String metodoDeEnvioHTTP = System.Web.HttpContext.Current.Request.HttpMethod;

                if (metodoDeEnvioHTTP != "POST")
                {
                    RespStudent Respuesta = new RespStudent();
                    Respuesta.code    = CodigosRespuesta.codigo.INTERNAL_SERVER_ERROR;
                    Respuesta.estatus = MensajesEstados.ERROR_POST_REQUEST;

                    JSON = JsonConvert.SerializeObject(new ResponseStudentAnswers(Respuesta));
                }
                else
                {
                    string POST;
                    using (Stream receiveStream = Request.InputStream)
                    {
                        using (StreamReader readStream = new StreamReader(receiveStream, Request.ContentEncoding))
                        {
                            POST = readStream.ReadToEnd();
                        }
                    }
                    if (POST == null || POST == "")
                    {
                        RespStudent Respuesta = new RespStudent();
                        Respuesta.code    = CodigosRespuesta.codigo.INTERNAL_SERVER_ERROR;
                        Respuesta.estatus = MensajesEstados.ErrorFatal;
                        JSON = JsonConvert.SerializeObject(new ResponseStudentAnswers(Respuesta));
                    }
                    else
                    {
                        RequestStudentAnswers Parametros = JsonConvert.DeserializeObject <RequestStudentAnswers>(POST);
                        string Mensaje = "";
                        if (parametrosValidos(Parametros, ref Mensaje))
                        {
                            ADStudent          coursesAD = new ADStudent();
                            RespStudentAnswers Respuesta = coursesAD.TakeLesson(Parametros);
                            JSON = JsonConvert.SerializeObject(new ResponseStudentAnswers(Respuesta.Response));
                        }
                        else
                        {
                            RespStudent Respuesta = new RespStudent();
                            Respuesta.estatus = Mensaje;
                            Respuesta.code    = CodigosRespuesta.codigo.BAD_REQUEST;
                            JSON = JsonConvert.SerializeObject(new ResponseStudentAnswers(Respuesta));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                RespStudent Respuesta = new RespStudent();
                Respuesta.estatus = MensajesEstados.ErrorFatal + e.Message.ToString();
                Respuesta.code    = CodigosRespuesta.codigo.INTERNAL_SERVER_ERROR;
                JSON = JsonConvert.SerializeObject(new ResponseStudentAnswers(Respuesta));
            }
            return(JSON);
        }
Exemple #3
0
        public RespStudentAnswers TakeLesson(RequestStudentAnswers Parametros)
        {
            RespStudentAnswers respuesta = new RespStudentAnswers();
            studentCore        core      = new studentCore();
            string             mensaje   = "";
            int idStudent = core.validateStudent(Parametros.RQ.user_number, Parametros.RQ.user_password, ref mensaje);

            if (idStudent != -1)
            {
                //get info lesson
                int              lessonPoints     = 0;
                Lesson           lesson           = new lessonsCore().getLesson(Parametros.RQ.ID_lesson, ref mensaje);
                List <Questions> questions_lesson = new questionsCore().getListQuestion(Parametros.RQ.ID_lesson, ref mensaje);
                List <Questions> questions_answer = Parametros.RQ.Questions;
                if (validateAnswers(questions_lesson, questions_answer, ref mensaje))
                {
                    if (lesson != null)
                    {
                        if (questions_lesson != null && questions_lesson.Count > 0)
                        {
                            foreach (Questions question in questions_lesson)
                            {
                                Questions answers = Parametros.RQ.Questions.Where(w => w.ID_question == question.ID_question).FirstOrDefault();
                                evaluateQuestion(question, answers, ref lessonPoints);
                            }
                        }
                    }

                    if (lessonPoints >= lesson.lesson_minPoints)
                    {
                        bool Correcto = core.TakeLesson(Parametros.RQ.ID_lesson, lessonPoints, idStudent, ref mensaje);
                        if (Correcto)
                        {
                            RespStudent Respuesta = new RespStudent();
                            Respuesta.code     = CodigosRespuesta.codigo.OK;
                            Respuesta.estatus  = mensaje;
                            respuesta.Response = Respuesta;
                        }
                        else
                        {
                            RespStudent Respuesta = new RespStudent();
                            Respuesta.code     = CodigosRespuesta.codigo.INTERNAL_SERVER_ERROR;
                            Respuesta.estatus  = mensaje;
                            respuesta.Response = Respuesta;
                        }
                    }
                    else
                    {
                        RespStudent Respuesta = new RespStudent();
                        Respuesta.code     = CodigosRespuesta.codigo.OK;
                        Respuesta.estatus  = "No cumple con el mínimo de puntos para pasar la lección.";
                        respuesta.Response = Respuesta;
                    }
                }
                else
                {
                    RespStudent Respuesta = new RespStudent();
                    Respuesta.code     = CodigosRespuesta.codigo.INTERNAL_SERVER_ERROR;
                    Respuesta.estatus  = mensaje;
                    respuesta.Response = Respuesta;
                }
            }
            else
            {
                RespStudent Respuesta = new RespStudent();
                Respuesta.code     = CodigosRespuesta.codigo.FORBIDDEN;
                Respuesta.estatus  = MensajesEstados.ErrorAcceso;
                respuesta.Response = Respuesta;
            }
            return(respuesta);
        }