//创建一个队伍 public static object PostTeam(object json, string token) { try { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var team_name = body["team_name"]; var user_id = Helper.JwtManager.DecodeToken(token); using (var context = new NBackendContext()) { var any_section = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year); if (!any_section.Any()) { return(Helper.JsonConverter.Error(400, "不存在这个班")); } var new_team = new Team { secId = sec_id, courseId = course_id, semester = semester, year = year, team_name = team_name, }; context.Teams.Add(new_team); try { context.SaveChanges(); } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "向team表中加入数据时发生错误")); } context.TeamStudents.Add(new TeamStudent { teamId = new_team.TeamId, studentId = user_id }); context.SaveChanges(); var data = new { team_id = new_team.TeamId }; return(Helper.JsonConverter.BuildResult(data)); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
//删除广播 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 DeleteCourseware(object json) { try { var body = Helper.JsonConverter.Decode(json); var courseware_id = int.Parse(body["courseware_id"]); using (var context = new NBackendContext()) { var any_courseware = context.CourseWares.Where(a => a.CourseWareId == courseware_id); if (!any_courseware.Any()) { return(Helper.JsonConverter.Error(400, "这个课件有问题")); } var the_courseware = any_courseware.Single(); context.CourseWares.Remove(the_courseware); context.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
public static object deleteFollow(string token, object json) { try { Dictionary <string, string> body = JsonConverter.Decode(json); NBackendContext ctx = new NBackendContext(); int following_id = int.Parse(body["user_id"]); int user_id = Helper.JwtManager.DecodeToken(token); User user = getUserById(ctx, user_id); User following = getUserById(ctx, following_id); if (!containsUser(user.following.ToList(), following)) { return(Helper.JsonConverter.Error(400, "你并没有follow")); } if (!containsUser(following.followers.ToList(), user)) { return(Helper.JsonConverter.Error(400, "follow信息有误"));//表不一致 } user.following.Remove(following); following.followers.Remove(user); ctx.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "取消关注失败")); } }
//教师允许学生加入班级 public static object PermitApplication(object json) { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var student_id = int.Parse(body["user_id"]); var status = int.Parse(body["status"]); using (var context = new NBackendContext()) { var a_student = context.Takes.Where(a => a.StudentId == student_id && a.secId == sec_id && a.courseId == course_id && a.year == year && a.semester == semester); if (!a_student.Any()) { return(Helper.JsonConverter.Error(401, "学生在出席记录中不存在")); } else { if (status == 1) { a_student.Single().validate_status = true; } else { context.Takes.Remove(a_student.Single()); } context.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } } }
public static void safeSaveChanges(NBackendContext ctx) { 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; } catch (Exception e) { throw; } }
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 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 JoinClass(object json, string token) { try { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var student_id = Helper.JwtManager.DecodeToken(token); using (var context = new NBackendContext()) { var a_class = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year); if (!a_class.Any()) { return(Helper.JsonConverter.Error(400, "该班级不存在")); } else { var the_class = a_class.Single(); var a_student = context.Students.Where(a => a.StudentId == student_id); if (!a_student.Any()) { return(Helper.JsonConverter.Error(400, "不存在这个学生")); } var the_student = a_student.Single(); context.Takes.Add(new Take { StudentId = the_student.StudentId, secId = the_class.SecId, courseId = the_class.courseId, semester = the_class.semester, year = the_class.year, validate_status = false }); context.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
//生成某个班级某次课的出席记录表 public static object PostAttendance(object json) { try { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var time_id = int.Parse(body["time_id"]); using (var context = new NBackendContext()) { var any_section = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year); if (!any_section.Any()) { return(Helper.JsonConverter.Error(400, "这个班有问题啊")); } var any_records = context.Attentions.Where(a => a.secId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year && a.timeId == time_id); if (any_records.Any()) { return(Helper.JsonConverter.Error(400, "已经生成过这次课的出席记录辽")); } var students = context.Takes.Where(a => a.secId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year); foreach (var a_student in students) { context.Attentions.Add(new Attention { StudentId = a_student.StudentId, secId = sec_id, courseId = course_id, semester = semester, year = year, timeId = time_id, status = 2 }); } context.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
public static object PostCourseware(object json) { try { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var name = body["name"]; var location = body["location"]; using (var context = new NBackendContext()) { var any_class = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year); if (!any_class.Any()) { return(Helper.JsonConverter.Error(400, "这个班不存在啊")); } var new_courseware = new CourseWare { secId = sec_id, courseId = course_id, semester = semester, year = year, name = name, location = location }; context.CourseWares.Add(new_courseware); context.SaveChanges(); return(Helper.JsonConverter.BuildResult(new { courseware_id = new_courseware.CourseWareId })); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "输入字符串可能存在格式错误,或者数据库中可能存在不一致现象,请检查")); } }
//编辑某次出席记录 public static object EditAttendanceRecords(object json) { try { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var student_id = int.Parse(body["user_id"]); var time_id = int.Parse(body["time_id"]); var status = int.Parse(body["status"]); using (var context = new NBackendContext()) { var any_section = context.Sections.Where(a => a.SecId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year); if (!any_section.Any()) { return(Helper.JsonConverter.Error(400, "这个班有问题啊")); } var records = context.Attentions.Where(a => a.secId == sec_id && a.courseId == course_id && a.semester == semester && a.year == year && a.StudentId == student_id && a.timeId == time_id); if (!records.Any()) { return(Helper.JsonConverter.Error(400, "这个班这次课没有出席表啊")); } foreach (var a_record in records) { a_record.status = status; } context.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
public static object postFollow(string token, object json) { try { Dictionary <string, string> body = JsonConverter.Decode(json); NBackendContext ctx = new NBackendContext(); int following_id = int.Parse(body["user_id"]); int user_id = Helper.JwtManager.DecodeToken(token); User user = getUserById(ctx, user_id); User following = getUserById(ctx, following_id); if (user == null || following == null) { return(Helper.JsonConverter.Error(400, "用户信息有误")); } if (user.Id == following.Id) { return(Helper.JsonConverter.Error(400, "请不要follow自己")); } if (containsUser(user.following.ToList(), following)) { return(Helper.JsonConverter.Error(400, "你已经follow过该用户")); } if (containsUser(following.followers.ToList(), user)) { return(Helper.JsonConverter.Error(400, "follow信息有误")); } user.following.Add(following); following.followers.Add(user); ctx.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "关注失败")); } }
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)); }
//学生加入队伍 public static object PostTeamAttendance(object json) { try { var body = Helper.JsonConverter.Decode(json); var team_id = int.Parse(body["team_id"]); var student_id = int.Parse(body["user_id"]); using (var context = new NBackendContext()) { var any_team = context.Teams.Where(a => a.TeamId == team_id); if (!any_team.Any()) { return(Helper.JsonConverter.Error(400, "没队伍啊")); } var any_student = context.Students.Where(a => a.StudentId == student_id); if (!any_student.Any()) { return(Helper.JsonConverter.Error(400, "这个人有问题啊")); } context.TeamStudents.Add(new TeamStudent { teamId = team_id, studentId = student_id }); context.SaveChanges(); return(Helper.JsonConverter.BuildResult(null)); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
public static object UpdateInfo(string token, object json) { try { Dictionary <string, string> body = JsonConverter.Decode(json); NBackendContext ctx = new NBackendContext(); int id = Helper.JwtManager.DecodeToken(token); User user = getUserById(ctx, id); if (user == null) { return(JsonConverter.Error(400, "用户不存在")); } var user_name = body["user_name"]; var department = body["department"]; //var password = body["password"]; var phone_number = body["phone_number"]; var email = body["email"]; var avatar = body["avatar"]; var role = body["role"]; user.user_name = user_name; user.department = department; //user.password = password; user.phone_number = phone_number; user.mail = email; user.avatar = avatar; user.role = role; int grade = -1; string job_title; if (user.role.Equals("student")) { grade = int.Parse(body["grade"]); var q = ctx.Students.Where(stu => stu.StudentId == user.Id); if (!q.Any()) { return(JsonConverter.Error(400, "没有这个人")); } else { var stu = q.Single(); stu.grade = grade; } } else { job_title = body["job_title"]; var q = ctx.Teachers.Where(tea => tea.TeacherId == user.Id); if (!q.Any()) { return(JsonConverter.Error(400, "用户不存在")); } else { var tea = q.Single(); tea.job_title = job_title; } } ctx.SaveChanges(); int following_num = user.following.Count(); int followers_num = user.followers.Count(); var data = new { user_id = user.Id, user_name = user.user_name, department = user.department, phone_number = user.phone_number, email = user.mail, avatar = user.avatar, role = user.role, following = following_num, follower = followers_num, }; return(JsonConverter.BuildResult(data)); } catch (Exception e) { return(Helper.JsonConverter.Error(400, "更新信息出错")); } }
//创建考试 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, "创建考试时出错")); } }
//删除、修改、提交题目全靠它 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 PostDiscussion(object json) { try { var body = Helper.JsonConverter.Decode(json); var sec_id = int.Parse(body["sec_id"]); var course_id = int.Parse(body["course_id"]); var semester = body["semester"]; var year = int.Parse(body["year"]); var user_id = int.Parse(body["user_id"]); var content = body["content"]; var time = body["time"]; var question_id = int.Parse(body["question_id"]); //var discussion_id = int.Parse(body["discussion_id"]); using (var context = new NBackendContext()) { var any_user = context.Users.Where(a => a.Id == user_id); if (!any_user.Any()) { return(Helper.JsonConverter.Error(400, "这个人有问题")); } if (time.Count() > 20 || time.Count() < 16) { return(Helper.JsonConverter.Error(400, "这个时间格式有问题")); } Discussion new_discussion = new Discussion(); if (question_id == 0) { new_discussion = new Discussion { secId = sec_id, courseId = course_id, semester = semester, year = year, userId = user_id, content = content, time = time, is_comment = false, }; context.Discussions.Add(new_discussion); } else { var any_discussion = context.Discussions.Where(a => a.DisscussionId == question_id); if (!any_discussion.Any()) { return(Helper.JsonConverter.Error(400, "这个问题不对啊")); } new_discussion = new Discussion { secId = sec_id, courseId = course_id, semester = semester, year = year, userId = user_id, content = content, time = time, is_comment = true }; any_discussion.Single().comments.Add(new_discussion); } // 写数据库 context.SaveChanges(); return(Helper.JsonConverter.BuildResult(new { discussion_id = new_discussion.DisscussionId })); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }
//教师创建班级 public static object CreateClass(object json) { try { //取数据 var jObject = new JObject(); jObject = JObject.Parse(json.ToString()); JArray jlist = JArray.Parse(jObject["time_slots"].ToString()); var course_id = int.Parse(jObject["course_id"].ToString()); var semester = jObject["semester"].ToString(); var year = int.Parse(jObject["year"].ToString()); var building = jObject["building"].ToString(); var room_number = jObject["room_number"].ToString(); var avatar = jObject["avatar"].ToString(); var start_week = int.Parse(jObject["start_week"].ToString()); var end_week = int.Parse(jObject["end_week"].ToString()); var user_id = int.Parse(jObject["user_id"].ToString()); //与数据库交互 using (var context = new NBackendContext()) { //验证数据 var any_course = context.Courses.Where(a => a.CourseId == course_id); if (!any_course.Any()) { return(Helper.JsonConverter.Error(400, "不存在这门课程")); } if (semester == "Spring") { if (int.Parse(DateTime.Now.Month.ToString()) > 6) { return(Helper.JsonConverter.Error(400, "这都下半学期啦")); } } var any_teacher = context.Users.Where(a => a.Id == user_id && a.role != "student"); if (!any_teacher.Any()) { return(Helper.JsonConverter.Error(400, "不存在这个老师")); } if (avatar == null) { avatar = "https://view.moezx.cc/images/2018/06/12/31133259.jpg"; } if (start_week < 1 || end_week > 17) { return(Helper.JsonConverter.Error(410, "开始周数或者结束周数不合理")); } //插入班级 var the_class = new Section { courseId = course_id, semester = semester, year = year, building = building, room_numer = room_number, avatar = avatar, start_week = start_week, end_week = end_week, }; for (int i = 0; i < jlist.Count(); i++) { var day = jlist[i]["day"].ToString(); var start_section = int.Parse(jlist[i]["start_section"].ToString()); var length = int.Parse(jlist[i]["length"].ToString()); var single_or_double = int.Parse(jlist[i]["single_or_double"].ToString()); var any_time_slot = context.SectionTimes.Where(a => a.start_section == start_section && a.length == length); if (!any_time_slot.Any()) { return(Helper.JsonConverter.Error(400, "不存在这个时间方案")); } var the_time_slot = any_time_slot.Single(); } context.Sections.Add(the_class); context.SaveChanges(); //插入multisectiontime表 for (int i = 0; i < jlist.Count(); i++) { var day = jlist[i]["day"].ToString(); var start_section = int.Parse(jlist[i]["start_section"].ToString()); var length = int.Parse(jlist[i]["length"].ToString()); var single_or_double = int.Parse(jlist[i]["single_or_double"].ToString()); var any_time_slot = context.SectionTimes.Where(a => a.start_section == start_section && a.length == length); if (!any_time_slot.Any()) { return(Helper.JsonConverter.Error(400, "不存在这个时间方案")); } var the_time_slot = any_time_slot.Single(); context.MultiSectionTimes.Add(new MultiSectionTimes { SecId = the_class.SecId, courseId = the_class.courseId, semester = the_class.semester, year = the_class.year, section_timeId = the_time_slot.SectionTimeId, day = day, single_or_double = single_or_double }); } //插入teach表 context.Teaches.Add(new Teach { TeacherId = user_id, SecId = the_class.SecId, courseId = the_class.courseId, semester = the_class.semester, year = the_class.year }); context.SaveChanges(); return(Helper.JsonConverter.BuildResult(new { the_class.SecId })); } } catch (Exception e) { System.Console.Write(e.Message); return(Helper.JsonConverter.Error(410, "数据库中可能存在不一致现象,请检查")); } }