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); }
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); }