public HttpResponseMessage AppealPeerAssessment([FromBody] JObject appealInfo) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = HttpUtil.Deserialize(appealInfo); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string stuid = redis.Get <string>(signature); //string stuid = jsonParams.stuid; int expid = jsonParams.experiment_id; string reason = jsonParams.reason; string assessorid = jsonParams.assessor_id; User user = UserDao.GetUserById(stuid); PeerAssessmentDao.AppealPeerAssessment(stuid, assessorid, expid, 1, reason); LogUtil.Log(Request, "互评申诉", stuid, stuid, user.role, "", "", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); return(new Response(1001, "申诉成功").Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage FindWeight() { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } //var jsonParams = HttpUtil.Deserialize(paInfo); var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); //Console.WriteLine(jsonParams); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string stuid = jsonParams["stuid"]; string userid = jsonParams["userid"]; int expid = Convert.ToInt32(jsonParams["expid"]); Peer_assessment OldPa = PeerAssessmentDao.getPeerAssessment(stuid, userid, expid); if (OldPa == null) { return(new Response(1001, "暂无分数", -1).Convert()); } return(new Response(1001, "成功", OldPa.score).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage dealAppeal([FromBody] JObject paInfo) { try { 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); var jsonParams = HttpUtil.Deserialize(paInfo); //string id = jsonParams.id; string student_id = jsonParams.student_id; string assessor_id = jsonParams.assessor_id; int experiment_id = jsonParams.experiment_id; float score = Convert.ToSingle(jsonParams.score); User user = UserDao.GetUserById(id); Experiment exp = ExperimentDao.GetExperimentById(experiment_id); 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) { Peer_assessment peer_Assessment = new Peer_assessment(); QuickCopy.Copy(paInfo, ref peer_Assessment); peer_Assessment.appeal_status = 2; Peer_assessment OldPa = PeerAssessmentDao.getPeerAssessment(student_id, assessor_id, experiment_id); if (OldPa == null) { return(new Response(3001, "参数无效").Convert()); } if (PeerAssessmentDao.ChangePeerAssessmentInfo(peer_Assessment) == 1) { return(new Response(1001, "Success").Convert()); } else { throw new Exception("数据库操作异常"); } } else { return(new Response(2002, "无权访问").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
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 AddPeerAssessment([FromBody] JObject peerAssessment) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = HttpUtil.Deserialize(peerAssessment); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); string stuid = jsonParams.student_id; int expid = jsonParams.experiment_id; Peer_assessment peerAssessment2 = new Peer_assessment(); peerAssessment2.assessor_id = id; QuickCopy.Copy(peerAssessment, ref peerAssessment2); Peer_assessment OldPa = PeerAssessmentDao.getPeerAssessment(stuid, id, expid); if (OldPa != null) { if (PeerAssessmentDao.ChangePeerAssessmentInfo(peerAssessment2) == 1) { return(new Response(1001, "Success").Convert()); } else { return(new Response(1001, "数据未变").Convert()); } } Peer_assessment peer_Assessment = new Peer_assessment(); peer_Assessment.assessor_id = id; QuickCopy.Copy(peerAssessment, ref peer_Assessment); Experiment exp = ExperimentDao.GetExperimentById(peer_Assessment.experiment_id); //if (!HttpUtil.IsTimeLater(exp.peer_assessment_deadline)) //return new Response(2002, "互评已结束").Convert(); PeerAssessmentDao.AddPeerAssessment(peer_Assessment); LogUtil.Log(Request, "作业评分", peer_Assessment.student_id, peer_Assessment.assessor_id, 1, "", "", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); return(new Response(1001, "Success").Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage PeerAssessmentDetails([FromBody] JObject peerDetail) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } //var jsonParams = HttpUtil.Deserialize(peerDetail); var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); List <Dictionary <string, string> > retData = new List <Dictionary <string, string> >(); Dictionary <string, string> PaInfo = new Dictionary <string, string>(); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string userid = redis.Get <string>(signature);// jsonParams.stuid;// int expid = Convert.ToInt32(jsonParams["expid"]); Assignment assignment = AssignmentDao.GetAssignmentsByStuIdAndExpId(userid, expid); int cnt = 0; List <Peer_assessment> peer_Assessments = PeerAssessmentDao.getPeerAssessmentByExpId(userid, expid); foreach (Peer_assessment pa in peer_Assessments) { PaInfo = new Dictionary <string, string> { { "assessorId", pa.assessor_id.ToString() }, { "score", pa.origin_score.ToString() }, { "reason", pa.appeal_reason }, { "appealStatus", pa.appeal_status.ToString() }, }; retData.Add(PaInfo); cnt++; if (cnt >= 3 && assignment.is_standard == 2) { break; } } return(new Response(1001, "Success", retData).Convert()); //todo:body.id } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage FindComment([FromBody] JObject paInfo) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } //var jsonParams = HttpUtil.Deserialize(paInfo); var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); //Console.WriteLine(jsonParams); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string stuid = jsonParams["stuid"]; string userid = redis.Get <string>(signature); int expid = Convert.ToInt32(jsonParams["expid"]);; Peer_assessment peerAssessment = new Peer_assessment(); Peer_assessment OldPa = PeerAssessmentDao.getPeerAssessment(stuid, userid, expid); if (OldPa == null) { return(new Response(1001, "暂无评价").Convert()); } return(new Response(1001, "成功", OldPa.reason).Convert()); //if (PeerAssessmentDao.getPeerAssessment(peer_Assessment) == null) //{ //return new Response(1002, "失败").Convert(); //} } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage ChangePeerAssessmentInfo([FromBody] JObject paInfo) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = HttpUtil.Deserialize(paInfo); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string stuid = jsonParams.student_id; string userid = redis.Get <string>(signature); int expid = jsonParams.experiment_id; Peer_assessment peer_Assessment = new Peer_assessment(); QuickCopy.Copy(paInfo, ref peer_Assessment); Peer_assessment OldPa = PeerAssessmentDao.getPeerAssessment(stuid, userid, expid); if (OldPa == null) { return(new Response(2002, "无权访问").Convert()); } if (PeerAssessmentDao.ChangePeerAssessmentInfo(peer_Assessment) == 1) { return(new Response(1001, "Success").Convert()); } else { throw new Exception("数据库操作异常"); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage GetUnfinishedExperiment([FromUri] JObject conditions)//fromUri 没用 { //Dictionary<string, string> retData = new Dictionary<string, string>(); List <Dictionary <string, string> > retData = new List <Dictionary <string, string> >(); Dictionary <string, string> expInfo; try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); var currentTime = DateTime.Now; string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } //var jsonParams = HttpUtil.Deserialize(conditions); int termId = Convert.ToInt32(jsonParams["termId"]); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); //string id = "16211094"; //List<Course_student_mapping> courseList = CourseDao.GetMapByStudentId(id); List <Course> courseList = CourseDao.GetCoursesByStuIdAndTermId(id, termId); List <Experiment> allExperiment = new List <Experiment>(); foreach (var map in courseList) { List <Experiment> exp = ExperimentDao.GetExperimentByCourseId(map.id); allExperiment = allExperiment.Union(exp).ToList(); } allExperiment = allExperiment.OrderBy(i => i.id).ToList(); List <Assignment> allAssignments = AssignmentDao.GetAssignmentsByStuId(id).OrderBy(i => i.experiment_id).ToList(); List <Peer_assessment> peerAssessments = PeerAssessmentDao.getPeerAssessmentByStuId(id); List <Experiment> assignmentFinishedExp = allExperiment.Where(e => allAssignments.Exists(a => a.experiment_id == e.id)).ToList(); allExperiment = allExperiment.Except(assignmentFinishedExp).ToList(); //没完成作业的 List <Experiment> peerExp = assignmentFinishedExp.Where(e => e.is_peer_assessment == true).ToList(); //作业完成但要互评 foreach (Experiment e in peerExp) { if (PeerAssessmentDao.getPeerAssessmentByAssessorId(id, e.id).Where(p => p.appeal_status == 1).Count() > 0) { allExperiment.Add(e); } }//得到没完成作业的&没互评的 allExperiment = allExperiment.Where(e => (e.is_peer_assessment == false && DateTime.Compare(Convert.ToDateTime(e.deadline), currentTime) > 0 || e.is_peer_assessment == true && DateTime.Compare(Convert.ToDateTime(e.peer_assessment_deadline), currentTime) > 0)).ToList(); //得到ddl前的 return(new Response(1001, "获取成功", ExperimentDao.GetExpRet(allExperiment)).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage getAllPeerAssessmentInfo([FromBody] JObject peerInfo) { try { 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 userid = redis.Get <string>(signature); var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); List <Dictionary <string, string> > retData = new List <Dictionary <string, string> >(); Dictionary <string, string> temp; // string userid = jsonParams["id"]; int expid = Convert.ToInt32(jsonParams["expid"]); Experiment exp = ExperimentDao.GetExperimentById(expid); Course course = CourseDao.GetCourseInfoById((int)exp.course_id); ///权限控制,该课程助教与老师可以访问 if (CourseDao.GetAssistantsByCourseId(course.id).Where(a => a.student_id == userid).Count() == 1 || userid == course.teacher_id) { List <Peer_assessment> peer_Assessments = PeerAssessmentDao.getPeerAssessmentByExpId(expid); var props = peer_Assessments.First().GetType().GetProperties(); int cnt = 0; foreach (Peer_assessment pr in peer_Assessments) { temp = new Dictionary <string, string>(); foreach (var pi in props) { var v = pr.GetType().GetProperty(pi.Name).GetValue(pr, null); string value; if (v != null) { value = v.ToString(); } else { value = ""; } temp.Add(pi.Name, value); } User student = UserDao.GetUserById(pr.student_id); User assessor = UserDao.GetUserById(pr.assessor_id); temp.Add("student_name", student.name.ToString()); temp.Add("assessor_name", assessor.name.ToString()); retData.Add(temp); } return(new Response(1001, "Success", retData).Convert()); } else { return(new Response(2002, "无权限访问该实验相关信息").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }