public HttpResponseMessage ExportPeerScore([FromBody] JObject expId) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); var jsonParams = HttpUtil.Deserialize(expId); //string id = "16211084"; int expid = Convert.ToInt32(jsonParams.expid); User user = UserDao.GetUserById(id); Experiment exp = ExperimentDao.GetExperimentById(expid); Course course = CourseDao.GetCourseInfoById((int)exp.course_id); ///权限控制,该课程助教与老师可以访问 if (CourseDao.GetAssistantsByCourseId(course.id).Where(a => a.student_id == id).Count() == 1 || id == course.teacher_id) { List <Assignment> assignments = AssignmentDao.GetAssignmentsByExpId(expid); List <PeerResult> prResults = new List <PeerResult>(); foreach (var hw in assignments) { PeerAssessmentDao.CorrectScore(hw.student_id, expid); PeerAssessmentDao.ComputeFinalScore(hw.student_id, expid); try { prResults.Add(new PeerResult { id = hw.student_id, name = UserDao.GetUserById(hw.student_id).name, score = hw.score }); }catch (Exception e) {} } return(new Response(1001, "导出成功", prResults).Convert()); } else { return(new Response(2002, "无权进行操作").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage GetAssignments() { try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); int expid = Convert.ToInt32(jsonParams["experiment_id"]); string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); User user = UserDao.GetUserById(id); Experiment exp = ExperimentDao.GetExperimentById(expid); Course course = CourseDao.GetCourseInfoById((int)exp.course_id); if (user.role < 2 && CourseDao.GetAssistantsByCourseId(course.id).Where(a => a.student_id == id).Count() == 0) { return(new Response(2002, "无权访问").Convert()); } if (user.role == 2 && id != course.teacher_id) { return(new Response(2002, "无权访问").Convert()); } if (user.role == 3 && user.department_id != course.department_id) { return(new Response(2002, "无权访问").Convert()); } List <Assignment> assignments = AssignmentDao.GetAssignmentsByExpId(expid); return(new Response(1001, "成功", assignments).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage GetHomeworkStatus([FromBody] JObject expInfo) { try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); int experimentId = Convert.ToInt32(jsonParams["id"]); string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); //string id = "16211084"; User user = UserDao.GetUserById(id); Experiment experiment = ExperimentDao.GetExperimentById(experimentId); Course course = CourseDao.GetCourseInfoById((int)experiment.course_id); //if (user.role < 2 && CourseDao.GetAssistantsByCourseId(course.id).Where(a => a.student_id == id).ToList().Count() == 0) //{ // return new Response(2002, "无权限查看助教").Convert(); //} //if (user.role == 3 && user.department_id != course.department_id) //{ // return new Response(2002, "无权限查看助教").Convert(); //} List <Dictionary <string, string> > ret = new List <Dictionary <string, string> >(); Dictionary <string, string> retData; List <User> students = CourseDao.GetStudentsById(course.id); List <Assignment> assignments = AssignmentDao.GetAssignmentsByExpId(experiment.id); string fileId = ""; string homeworkStatus = ""; string uploadTime = ""; foreach (User stu in students) { retData = new Dictionary <string, string>(); Assignment assignment = assignments.Where(a => a.student_id == stu.id).SingleOrDefault(); if (assignment == null) { fileId = ""; homeworkStatus = "未提交"; uploadTime = ""; } else { fileId = assignment.file; homeworkStatus = "已提交"; uploadTime = assignment.submit_time; } retData.Add("stuId", stu.id); retData.Add("stuName", stu.name); retData.Add("fileID", fileId == null? "" : fileId); retData.Add("homeworkStatus", homeworkStatus); retData.Add("uploadTime", uploadTime); retData.Add("score", assignment == null ? "" : assignment.score.ToString()); ret.Add(retData); } return(new Response(1001, "成功", ret).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage GetExperimentDetail([FromBody] JObject account) { try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); int id = Convert.ToInt32(jsonParams["id"]); //experimentid string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } //var jsonParams = HttpUtil.Deserialize(account); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string userId = redis.Get <string>(signature); //string userId = "16211084"; User user = UserDao.GetUserById(userId); Experiment experiment = ExperimentDao.GetExperimentById(id); Course course = CourseDao.GetCourseInfoById(experiment.id); List <Assignment> assignment = AssignmentDao.GetAssignmentsByStuId(userId); bool flag = false; foreach (var ass in assignment) { if (ass.experiment_id == id) { flag = true; break; } } tmpRetExpDetail ret = new tmpRetExpDetail(); ret.name = experiment.name; ret.type = experiment.type.GetValueOrDefault(); ret.score = Convert.ToInt32(experiment.vm_status); ret.score2 = Convert.ToInt32(experiment.vm_apply_id); ret.reason = experiment.vm_name; if (experiment.course_id != null) { //找出其他任课老师 List <Assistant> AssistantTeas = CourseDao.GetAssistantsByCourseId((int)experiment.course_id).ToList(); List <string> teachers = UserDao.GetUserByRole(2).Where(a => AssistantTeas.Exists(t => t.student_id == a.id)).Select(a => a.name).ToList(); ret.course = CourseDao.GetCourseInfoById((int)experiment.course_id).name; ret.course_id = (int)experiment.course_id; ret.teacher = UserDao.GetUserById(CourseDao.GetCourseInfoById((int)experiment.course_id).teacher_id).name; ret.teacher_id = CourseDao.GetCourseInfoById((int)experiment.course_id).teacher_id; if (teachers.Count != 0) { foreach (string t in teachers) { ret.teacher = ret.teacher + "," + t; } } } else { ret.course = ""; ret.teacher = ""; } ret.deadline = experiment.deadline; ret.peerDeadline = experiment.peer_assessment_deadline; ret.details = experiment.detail; /** * ret.sourcelist = new List<Dictionary<string, string>>(); * ret.sourcelist.Add(new Dictionary<string, string> { * { "source", experiment.resource }, * { "name","" }//TODO:这啥属性? * }); **/ ret.resource = experiment.resource; ret.appealDeadline = experiment.appeal_deadline; ret.peerAssessmentRule = experiment.peer_assessment_rules; ret.peerStarted = experiment.peer_assessment_start == true ? true:false; ret.startTime = experiment.start_time; ret.endTime = experiment.end_time; if (user.role == 1) { ret.status = flag ? "1" : "0"; } else { ret.status = AssignmentDao.GetAssignmentsByExpId(experiment.id).Count().ToString() + "/" + CourseDao.GetMapByCourseId((int)experiment.course_id).Count().ToString(); } return(new Response(1001, "获取成功", ret).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }