public static object getTwis(string token) { NBackendContext ctx = new NBackendContext(); int user_id = JwtManager.DecodeToken(token); return(ListToObj(ctx, getAllTwis(ctx, user_id))); }
//获取班级的所有广播 private static List <object> getBroadcastsOfClass(string token, object json) { try { int user_id = JwtManager.DecodeToken(token); //做验证 var body = JsonConverter.Decode(json); int sec_id = int.Parse(body["sec_id"]); int course_id = int.Parse(body["course_id"]); int year = int.Parse(body["year"]); string semester = body["semester"]; NBackendContext ctx = new NBackendContext(); var class_bros = _getBroadcastsOfClass(ctx, sec_id, course_id, year, semester); if (class_bros == null) { return(new List <object>()); } return(ListToObj(class_bros)); } catch (Exception e) { return(null); } }
//删除广播 public static object deleteBroadcast(string token, object json) { try { var body = JsonConverter.Decode(json); int broadcast_id = int.Parse(body["broadcast_id"]); int user_id = JwtManager.DecodeToken(token); NBackendContext ctx = new NBackendContext(); var q = ctx.TeacherBroadcasts.Where(tb => tb.broadcastId == broadcast_id && tb.teacherId == user_id); var q1 = ctx.Broadcasts.Where(bro => bro.BroadcastId == broadcast_id); if (!q.Any()) { return(JsonConverter.Error(400, "该广播不存在或者你没有创建过该广播")); } var _tb = q.Single(); var broadcast = q1.Single(); ctx.TeacherBroadcasts.Remove(_tb); ctx.Broadcasts.Remove(broadcast); ctx.SaveChanges(); return(JsonConverter.BuildResult(null)); } catch (Exception e) { return(JsonConverter.Error(400, e.Message)); } }
//获取某个课程的所有题目 public static object getQuestionsOfCourse(string token, object json) { try { int user_id = JwtManager.DecodeToken(token); var body = Helper.JsonConverter.Decode(json); int course_id = int.Parse(body["course_id"]); NBackendContext ctx = new NBackendContext(); var q = ctx.Questions.Where(qu => qu.courseId == course_id); List <Question> questions = q.ToList(); List <object> data = new List <object>(); foreach (Question qu in questions) { data.Add(new { question_id = qu.QuestionId, course_id = qu.courseId, chapter = qu.chapter, content = qu.content, answer = qu.answer, options = qu.options, }); } return(Helper.JsonConverter.BuildResult(data)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "信息填写有误?")); } }
public IHttpActionResult RandomQuestion() { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } if (!(foundUser.UserType.Equals("admin") || foundUser.UserType.Equals("presenter"))) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Not Authorized"))); } int total = db.Questions.Count(); int rno = rnd.Next(0, total); while (QuestionsController.ignoreRand.Contains(rno)) { if (QuestionsController.counter < total) { rno = rnd.Next(0, total); } else { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NoContent, "No Questions found"))); } } Question question = db.Questions.OrderBy(x => x.QId).Skip(rno).FirstOrDefault(); ignoreRand.Add(rno); counter++; return(Ok(question)); }
public IHttpActionResult PostUser(User user) { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } if (!foundUser.UserType.Equals("admin")) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Not Authorized")));; } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { db.User.Add(user); db.SaveChanges(); } catch (DbUpdateException) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Name Already exists"))); } catch (Exception) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cant Process your request"))); } return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.OK, "New User Added"))); }
//学生提交试卷 public static object finishExam(string token, object json) { int user_id = JwtManager.DecodeToken(token); NBackendContext ctx = new NBackendContext(); User user = UserBiz.getUserById(ctx, user_id); //var body = Helper.JsonConverter.Decode(json); try { var body = JsonConvert.DeserializeObject <Dictionary <string, object> >(json.ToString()); var exam_id = (int)(long)body["exam_id"]; var questions = (JArray)body["questions"]; //var _body = JsonConvert.DeserializeObject<List<object>>(questions); List <object> ques_ans = new List <object>(); int total_score = 0; foreach (var qu in questions) { IDictionary <string, JToken> rates = (JObject)qu; // Explicit typing just for "proof" here Dictionary <string, object> __body = rates.ToDictionary(pair => pair.Key, pair => (object)pair.Value); int question_id = ((JValue)__body["question_id"]).Value <int>(); string answer = ((JValue)__body["answer"]).Value <string>(); Question question = getQuestionById(ctx, question_id); if (question.answer.Equals(answer)) { int single_score = getScoreById(ctx, question_id, exam_id); total_score += single_score; } } ctx.TakesExams.Add(new TakesExam { StudentId = user_id, ExamId = (int)exam_id, score = total_score }); ctx.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } catch (Exception e) { //throw e; return(Helper.JsonConverter.Error(400, "提交失败")); } }
public static object postTwi(string token, object json) { Dictionary <string, string> body = JsonConverter.Decode(json); NBackendContext ctx = new NBackendContext(); int user_id = JwtManager.DecodeToken(token); //var user_id = int.Parse(body["user_id"]); if (UserBiz.getUserById(ctx, user_id) == null) { return(Helper.JsonConverter.Error(400, "你这个人是谁哦")); } var content = body["content"]; var time = body["time"]; var image = body["image"]; Twitter twi = new Twitter { //TwitterId = 1, userId = user_id, content = content, time = time, image = image }; ctx.Twitters.Add(twi); try { ctx.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } var data = new { twitter_id = twi.TwitterId, user_id = twi.userId, image = twi.image, time = twi.time, content = twi.content, }; return(JsonConverter.BuildResult(data)); }
public IHttpActionResult PutQuestion(int id, Question question) { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } if (!foundUser.UserType.Equals("admin")) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Not Authorized"))); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != question.QId) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Wrong Id"))); } //db.Entry(question).State = EntityState.Modified; db.MarkAsModified(question); try { db.SaveChanges(); return(Ok("product Added")); } catch (DbUpdateException) { if (!QuestionExists(id)) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Name already exists"))); } else { throw; } } catch (Exception) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cant Process your request"))); } }
public IHttpActionResult PutUser(int id, User user) { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } if (!foundUser.UserType.Equals("admin")) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Not authoriZed"))); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != user.UserId) { return(BadRequest()); } db.Entry(user).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateException) { if (!UserExists(id)) { return(NotFound()); } else { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Name already exists"))); } } catch (Exception) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cant Process your request"))); } return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.OK, "User Updated"))); }
public IQueryable <Team> GetTeams() { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(null); } if (!(foundUser.UserType.Equals("admin") || foundUser.UserType.Equals("presenter"))) { return(null); } return(db.Teams); }
//获取班级的所有试卷基本信息 public static object getExamsOfClass(string token, object json) { try { var body = Helper.JsonConverter.Decode(json); int sec_id = int.Parse(body["sec_id"]); int course_id = int.Parse(body["course_id"]); string semester = body["semester"]; int year = int.Parse(body["year"]); NBackendContext ctx = new NBackendContext(); int user_id = JwtManager.DecodeToken(token); User user = UserBiz.getUserById(ctx, user_id); if (user == null) { return(Helper.JsonConverter.Error(400, "查无此人")); } //需要验证该学生、老师是否属于某个班级???不用,查出来的只有这个班级 var q = ctx.Exams.Where(exam => exam.secId == sec_id && exam.courseId == course_id && exam.semester == semester && exam.year == year ); var data = ListToObj(ctx, q.ToList(), user); if (data == null) { return(Helper.JsonConverter.Error(400, "你好像没权限(^U^)ノ~YO")); } else { return(Helper.JsonConverter.BuildResult(data)); } } catch (Exception e) { return(Helper.JsonConverter.Error(400, "获取班级信息时出错")); } }
public IHttpActionResult GetCurrentUser() { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No User Found")));; } if ((foundUser.UserType.Equals("admin") || foundUser.UserType.Equals("presenter"))) { return(Ok(foundUser.UserName)); } else { return(null); } }
public static object deleteTwi(string token, object json) { int user_id = JwtManager.DecodeToken(token); var body = JsonConverter.Decode(json); int twi_id = int.Parse(body["twitter_id"]); NBackendContext ctx = new NBackendContext(); var q = ctx.Twitters.Where(twi => twi.TwitterId == twi_id && twi.userId == user_id); if (!q.Any()) { return(Helper.JsonConverter.Error(400, "您没有发表改动态")); } Twitter _twi = q.Single(); ctx.Twitters.Remove(_twi); ctx.SaveChanges(); return(JsonConverter.BuildResult(null)); }
//获取用户的关注列表,包括ers和ing public static object getFolowInfo(string token) { NBackendContext ctx = new NBackendContext(); try { int user_id = JwtManager.DecodeToken(token); User user = getUserById(ctx, user_id); var data = new { following = user.following.Count(), follower = user.followers.Count(), }; return(JsonConverter.BuildResult(data)); } catch (Exception e) { return(JsonConverter.Error(400, "获取关注信息出错")); } }
public IHttpActionResult DeleteUser(int id) { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } if (!foundUser.UserType.Equals("admin")) { return(null);; } User user = db.User.Find(id); if (user == null) { return(NotFound()); } try { db.User.Remove(user); db.SaveChanges(); } catch (DbUpdateException) { throw; } catch (Exception) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cant Process your request"))); } return(Ok(user)); }
public IHttpActionResult VerifyLogin() { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } else if (foundUser != null && foundUser.UserType.Equals("admin")) { return(ResponseMessage(Request.CreateResponse(HttpStatusCode.Accepted, "admin"))); } else if (foundUser != null && foundUser.UserType.Equals("presenter")) { return(ResponseMessage(Request.CreateResponse(HttpStatusCode.Accepted, "presenter"))); } else // When user found but password incorrect { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Ambiguous, "Password Incorrect"))); } }
public IHttpActionResult GetUser(int id) { HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); if (foundUser == null) { return(NotFound()); } if (!foundUser.UserType.Equals("admin")) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Not authoriZed"))); } User user = db.User.Find(id); if (user == null) { return(NotFound()); } return(Ok(user)); }
//创建考试 public static object postExam(string token, object json) { try { int user_id = JwtManager.DecodeToken(token); NBackendContext ctx = new NBackendContext(); //验证该用户是否是教学的老师 User user = UserBiz.getUserById(ctx, user_id); if (user == null || user.role != "teacher_edu") { return(Helper.JsonConverter.Error(400, "该用户没有权限创建试卷")); } //var body = Helper.JsonConverter.Decode(json); var body = JsonConvert.DeserializeObject <Dictionary <string, object> >(json.ToString()); int sec_id = (int)(long)body["sec_id"]; int course_id = (int)(long)body["course_id"]; string semester = (string)body["semester"]; int year = (int)(long)body["year"]; string scope = (string)body["scope"]; string type = (string)body["type"]; string start_time = (string)body["start_time"]; string end_time = (string)body["end_time"]; string title = (string)body["title"]; //NBackendContext ctx = new NBackendContext(); //创建考试第一步 Exam exam = new Exam { secId = sec_id, courseId = course_id, semester = semester, year = year, scope = scope, type = type2Id(type), start_time = start_time, end_time = end_time, title = title, }; ctx.Exams.Add(exam); var questions = (JArray)body["questions"]; foreach (var qu in questions) { IDictionary <string, JToken> rates = (JObject)qu; // Explicit typing just for "proof" here Dictionary <string, object> __body = rates.ToDictionary(pair => pair.Key, pair => (object)pair.Value); int question_id = ((JValue)__body["question_id"]).Value <int>(); int single_score = ((JValue)__body["score"]).Value <int>(); int index = ((JValue)__body["index"]).Value <int>(); //if (questions.Select(_qu=>_qu.).Contains(question_id)) //{ ctx.ExamQuestions.Add(new ExamQuestion { examId = exam.ExamId, questionId = question_id, score = single_score, index = index, }); //} //else //{ // //有一道题找不到? //} } //创建考试第二步 //int exam_id = exam.ExamId; //string _quess = body["questions"]; //var quess = JsonConvert.DeserializeObject<List<object>>(_quess); //var questions = ctx.Questions.Select(qu => qu.QuestionId).ToList(); //foreach (object obj in quess) //{ // var _body = Helper.JsonConverter.Decode(obj); // int question_id = int.Parse(_body["question_id"]); // int single_score = int.Parse(_body["score"]); // int index = int.Parse(_body["index"]); // if (questions.Contains(question_id)) // { // ctx.ExamQuestions.Add(new ExamQuestion // { // examId = exam_id, // questionId = question_id, // score = single_score, // index = index, // }); // } // else // { // //有一道题找不到? // } //} ctx.SaveChanges(); var data = new { //exam_id }; return(Helper.JsonConverter.BuildResult(data)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "创建考试时出错")); } }
public static bool validateToken(int user_id, string token) { return(user_id == JwtManager.DecodeToken(token)); }
public static object examSumup(string token) { try { int user_id = JwtManager.DecodeToken(token); NBackendContext ctx = new NBackendContext(); User user = UserBiz.getUserById(ctx, user_id); //参加的考试 var qexam_taken = ctx.TakesExams.Where(te => te.Student.StudentId == user_id).ToList(); //参加的课程的所有考试 var qexam_all = ctx.Takes.Where(take => take.StudentId == user_id).Join(ctx.Exams, take => new { take.Section.SecId, take.Section.courseId }, exam => new { exam.Section.SecId, exam.Section.courseId } , (take, exam) => new { exam, take.Section } ).Where(exam_sec => exam_sec.exam.Section.year == exam_sec.Section.year && exam_sec.exam.Section.semester == exam_sec.Section.semester).ToList() .Select(te => te.exam).ToList(); //没参加的考试成绩为0 var qexam_not_taken = qexam_all.Except(qexam_taken.Select(qt => qt.Exam)).ToList(); int exam_num = qexam_all.Count(); List <object> exams = new List <object>(); foreach (var et in qexam_taken) { int grade = 1;//等级 Course course = et.Exam.Course; int score = getTotalScore(ctx, et.ExamId); if (score == 0) { return(Helper.JsonConverter.Error(404, "找不到这张试卷")); } grade = (int)((float)et.score * 5 / score); exams.Add(new { exam_id = et.ExamId, course.course_name, et.Exam.title, grade }); } foreach (var ent in qexam_not_taken) { Course course = ent.Course; exams.Add(new { exam_id = ent.ExamId, course.course_name, ent.title, grade = 1 }); } var data = new { exam_num, exams }; return(Helper.JsonConverter.BuildResult(data)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "查看总结出错,请检查请求字段")); } }
//获取某张试卷所有的题目,包括学生考试前后和老师查看 public static object getQuestionsOfExam(string token, object json) { try { var body = Helper.JsonConverter.Decode(json); int user_id = JwtManager.DecodeToken(token); int exam_id = int.Parse(body["exam_id"]); NBackendContext ctx = new NBackendContext(); //连接考试表和试题表 var q = ctx.Exams.Join(ctx.ExamQuestions, _exam => _exam.ExamId, eq => eq.examId, (_exam, eq) => eq ).Join(ctx.Questions, eq => eq.questionId, ques => ques.QuestionId, (eq, ques) => ques ); //该试卷的所有题目 var quess = q.ToList(); User user = UserBiz.getUserById(ctx, user_id); if (!quess.Any()) { return(Helper.JsonConverter.Error(400, "不是考试没了就是题库崩了?")); } Exam exam = getExamById(ctx, exam_id); string title = exam.title; string start_time = exam.start_time; string end_time = exam.end_time; var q1 = ctx.ExamQuestions.Where(e => e.examId == exam.ExamId).Join(ctx.Questions, ex => ex.questionId, qu => qu.QuestionId, (ex, qu) => qu ); var questions = q1.ToList(); object data = null; List <object> qdata = new List <object>(); if (user.role.Equals("teacher_edu")) { foreach (var qu in questions) { int index = getQuestionIndex(ctx, exam_id, qu.QuestionId); int score = getScoreById(ctx, qu.QuestionId, exam_id); qdata.Add(new { question_id = qu.QuestionId, course_id = qu.courseId, chapter = qu.chapter, content = qu.content, options = qu.options, answer = qu.answer, index, score }); data = new { questions = qdata, title = title, }; } } else if (user.role.Equals("student")) { var q2 = ctx.TakesExams.Where(te => te.StudentId == user_id && te.ExamId == exam_id ); //if (!q2.Any()) //{ // return Helper.JsonConverter.Error(400, "无效用户或考试"); //} //var ex = q2.Single().Exam; var ex = getExamById(ctx, exam_id); if (ex == null) { return(Helper.JsonConverter.Error(400, "考试没了!")); } bool exam_ended = isExamFinished(ex); //没参加过这场考试并且没超时 if (!q2.Any() && !exam_ended) { foreach (var qu in questions) { int index = getQuestionIndex(ctx, exam_id, qu.QuestionId); int score = getScoreById(ctx, qu.QuestionId, exam_id); qdata.Add(new { question_id = qu.QuestionId, course_id = qu.courseId, chapter = qu.chapter, content = qu.content, options = qu.options, index, score, }); } data = new { questions = qdata, title = title, start_time = start_time, end_time = end_time, exam_status = false, }; } else { foreach (var qu in questions) { int index = getQuestionIndex(ctx, exam_id, qu.QuestionId); int score = getScoreById(ctx, qu.QuestionId, exam_id); qdata.Add(new { question_id = qu.QuestionId, course_id = qu.courseId, chapter = qu.chapter, content = qu.content, options = qu.options, answer = qu.answer, index, score }); } data = new { questions = qdata, title = title, start_time = start_time, end_time = end_time, exam_status = true, total_score = q2.Single().score }; } } else { return(Helper.JsonConverter.Error(400, "您没有权限(^U^)ノ~YO")); } return(Helper.JsonConverter.BuildResult(data)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "题目信息获取出错,请检查对应字段")); } }
public IHttpActionResult CheckAnswer(JObject jdata) { dynamic JsonData = jdata; HttpRequestMessage message = this.Request; String token = message.Headers.Authorization.ToString().Substring(7); String username = JwtManager.DecodeToken(token); User foundUser = db.User.Where(a => a.UserName.Equals(username)).FirstOrDefault(); int qId; int tId; String answer; int PassFLAG = 0; try { qId = JsonData.qId.ToObject <int>(); tId = JsonData.tId.ToObject <int>(); answer = JsonData.answer.ToObject <String>(); PassFLAG = JsonData.PassFlag.ToObject <int>(); } catch (Exception) { return(BadRequest()); } if (foundUser == null) { return(NotFound()); } if (!foundUser.UserType.Equals("presenter")) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Not Authorized"))); } Question question = db.Questions.Find(qId); Team team = db.Teams.Find(tId); if (question == null || team == null) { return(BadRequest()); } else if (question.Answer.Equals(answer)) { team.QuestionsAttempted++; team.AnswersCorrect++; if (PassFLAG == 0) { team.TeamScore += 10; try { //db.Entry(team).State = EntityState.Modified; db.MarkAsModified(team); db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cant Process Your Request"))); } return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.OK, "Correct Answer"))); } else if (PassFLAG == 1) { team.TeamScore += 5; team.QuestionsPassed++; try { //db.Entry(team).State = EntityState.Modified; db.MarkAsModified(team); db.SaveChanges(); } catch (DbUpdateConcurrencyException) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.Forbidden, "Cant Process Your Request"))); } return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.OK, "Correct Answer"))); } } else { team.QuestionsAttempted++; //db.Entry(team).State = EntityState.Modified; db.MarkAsModified(team); db.SaveChanges(); return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.OK, "Wrong Answer"))); } return(Ok()); }
//删除、修改、提交题目全靠它 private static object questionHelper(string token, object json, int option) { int user_id = JwtManager.DecodeToken(token); NBackendContext ctx = new NBackendContext(); User user = UserBiz.getUserById(ctx, user_id); if (user == null || !user.role.Equals("teacher_edu")) { //可以再判断这个老师是不是教这个的 return(Helper.JsonConverter.Error(400, "您未登录或者没有权限")); } var body = Helper.JsonConverter.Decode(json); try { //删除、修改、提交题目分发逻辑 switch (option) { default: { int course_id = int.Parse(body["course_id"]); string chapter = body["chapter"]; string content = body["content"]; string options = body["options"]; string answer = body["answer"]; if (option == POST) { var newq = new Question { courseId = course_id, chapter = chapter, content = content, options = options, answer = answer, }; ctx.Questions.Add(newq); ctx.SaveChanges(); object data = new { question_id = newq.QuestionId }; return(Helper.JsonConverter.BuildResult(data)); } else if (option == PUT) { int question_id = int.Parse(body["question_id"]); var q = ctx.Questions.Where(qu => qu.QuestionId == question_id); if (!q.Any()) { return(Helper.JsonConverter.Error(400, "没有这道题")); } else { Question question = q.Single(); question.answer = answer; question.chapter = chapter; question.options = options; question.content = content; ctx.SaveChanges(); } } return(Helper.JsonConverter.BuildResult(null)); } case DELETE: { int question_id = int.Parse(body["question_id"]); var q = ctx.Questions.Where(qu => qu.QuestionId == question_id); if (!q.Any()) { return(Helper.JsonConverter.Error(400, "没有这道题")); } else { var qu = q.Single(); ctx.Questions.Remove(qu); ctx.SaveChanges(); } return(Helper.JsonConverter.BuildResult(null)); //break; } } } catch (Exception e) { return(Helper.JsonConverter.Error(400, "请检查您的提交信息")); } }
//创建广播 public static object postBroadcast(string token, object json) { try { var body = JsonConverter.Decode(json); NBackendContext ctx = new NBackendContext(); int teacher_id = JwtManager.DecodeToken(token); User user = UserBiz.getUserById(ctx, teacher_id); if (user == null) { return(Helper.JsonConverter.Error(400, "你还没登录?")); } int type = int.Parse(body["type"]); int scope = int.Parse(body["scope"]); string start_time = body["start_time"]; string end_time = body["end_time"]; string published_time = body["published_time"]; string content = body["content"]; //k int sec_id, course_id, year; string semester; if (scope == SCOPE_CLASS) { if (!user.role.Equals("teacher_edu")) { return(Helper.JsonConverter.Error(400, "你没有权限呢")); } sec_id = int.Parse(body["sec_id"]); course_id = int.Parse(body["course_id"]); year = int.Parse(body["year"]); semester = body["semester"]; } else { if (!user.role.Equals("teacher_manage")) { return(Helper.JsonConverter.Error(400, "你没有权限呢")); } //默认班级 sec_id = 100003; course_id = 2; year = 0; semester = "Spring"; } Broadcast broadcast = new Broadcast { secId = sec_id, courseId = course_id, year = year, semester = semester, scope = scope, type = type, start_time = start_time, publish_time = published_time, end_time = end_time, content = content }; ctx.TeacherBroadcasts.Add(new TeacherBroadcast { teacherId = teacher_id, broadcastId = broadcast.BroadcastId }); ctx.Broadcasts.Add(broadcast); ValidationHelper.safeSaveChanges(ctx); var data = new { broadcast_id = broadcast.BroadcastId }; return(JsonConverter.BuildResult(data)); } catch (Exception e) { return(JsonConverter.Error(400, "创建广播失败")); } }