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 ListTerm() { 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()); } return(new Response(1001, "获取数据成功", DataUtil.GetDatas()).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage ResetPasswordVerify() { Dictionary <string, string> retData = new Dictionary <string, string>(); try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); string auth = jsonParams["token"]; bool exist = redis.IsSet(auth); if (exist) { retData.Add("id", redis.Get <string>(auth)); retData.Add("token", auth); return(new Response(1001, "验证成功", retData).Convert()); } else { return(new Response(1001, "请求不存在").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
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 GetExperimentByTermId() { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); int termId = Convert.ToInt32(jsonParams["termId"]); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); var retData = ExperimentDao.GetExperimentByTermIdAndStuId(id, termId); return(new Response(1001, "获取成功", ExperimentDao.GetExpRet(retData)).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage EndCourse([FromBody] JObject Newcourse) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } Course course = new Course(); QuickCopy.Copy <Course>(Newcourse, ref course); bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } string targetId = redis.Get <string>(signature); Course oldCourse = CourseDao.GetCourseInfoById(course.id); if (oldCourse == null || oldCourse.teacher_id != targetId) { return(new Response(2002, "无权限修改该课程的信息").Convert()); } CourseDao.ChangeCourseInfo(course); LogUtil.Log(Request, "修改课程", course.id.ToString(), targetId, UserDao.GetUserById(targetId).role); return(new Response(1001, "修改课程信息成功").Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(new Response(4001).Convert());; } }
public HttpResponseMessage GetCourse() { Console.WriteLine("11"); try { Console.WriteLine("22"); string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); int id = Convert.ToInt32(jsonParams["courseID"]); Console.WriteLine(id); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } Course course = CourseDao.GetCourseInfoById(id); return(new Response(1001, "获取成功", course).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage GetNowTerm() { 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()); } else { Term term = UserDao.GetNowTerm(); return(new Response(1001, "查询成功", term).Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(new Response(4001).Convert());; } }
public HttpResponseMessage AddStudent([FromBody] JObject studentInfo) { try { var jsonParams = HttpUtil.Deserialize(studentInfo); 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); User user = UserDao.GetUserById(id); if (user.role != 4 && user.role != 3) { return(new Response(2002).Convert()); } User toAdd = new User(); QuickCopy.Copy(studentInfo, ref toAdd); toAdd.name = toAdd.name.ToLower(); toAdd.is_accept = false; toAdd.nick_name = toAdd.name; toAdd.role = 1; toAdd.passwd = ConfigurationManager.AppSettings["DefaultUserPasswd"]; if (user.role == 3 && toAdd.department_id != null && user.department_id != toAdd.department_id) { return(new Response(2002, "不能添加其他系的学生").Convert()); } if (user.role == 4 && toAdd.department_id == null) { return(new Response(3001, "院系不能为空").Convert()); } if (user.role == 3) { toAdd.department_id = user.department_id; } List <User> users = new List <User>(); users.Add(toAdd); UserDao.AddUser(users); return(new Response(1001, "添加成功").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 getStusWithoutVMByExpId([FromBody] JObject expInfo) { try { List <Dictionary <string, string> > retData = new List <Dictionary <string, string> >(); Dictionary <string, string> stuidInfo; string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string userid = redis.Get <string>(signature); int expid = Convert.ToInt32(jsonParams["expid"]); Experiment exp = ExperimentDao.GetExperimentById(expid); if (exp.course_id == null) { return(new Response(1001, "该实验没有所属课程").Convert()); } int courseId = (int)ExperimentDao.GetExperimentById(expid).course_id; User user = UserDao.GetUserById(userid); if ((user.role == 2 && CourseDao.GetCourseInfoById(courseId).teacher_id == user.id) || (user.role == 1 && CourseDao.GetAssistantsByCourseId(courseId).Where(a => a.student_id == user.id).Count() != 0)) { List <User> stulist = CourseDao.GetStudentsById(courseId); List <VMConfig> vmlist = VMDao.GetVMsByVmName(exp.vm_name); foreach (User stu in stulist) { if (vmlist.Find(vm => vm.student_id.Equals(stu.id)) == null) { stuidInfo = new Dictionary <string, string> { { "id", stu.id }, }; retData.Add(stuidInfo); } } return(new Response(1001, "Success", retData).Convert()); } else { return(new Response(2001, "没有权限获取信息").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 UploadAssignment([FromBody] JObject assignmentInfo) { 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(assignmentInfo); int expID = jsonParams.exp_id; string file = jsonParams.file; Experiment experiment = ExperimentDao.GetExperimentById(expID); List <Course_student_mapping> csm = CourseDao.GetMapByStudentId(id).Where(m => m.course_id == experiment.course_id).ToList(); if (csm.Count > 0) { Assignment assignment = new Assignment { experiment_id = experiment.id, student_id = id, submit_time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), is_standard = 0, file = file }; Assignment oldAssignment = AssignmentDao.GetAssignmentsByStuIdAndExpId(id, expID); if (oldAssignment != null) { LogUtil.Log(Request, "重新提交作业", expID.ToString(), id, 1, "", "", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); AssignmentDao.DeleteAssignment(oldAssignment.id); AssignmentDao.AddAssignment(assignment); return(new Response(1001, "重新提交作业成功").Convert()); } else { LogUtil.Log(Request, "提交作业", expID.ToString(), id, 1, "", "", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); AssignmentDao.AddAssignment(assignment); return(new Response(1001, "提交作业成功").Convert()); } } return(new Response(2002).Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage ActivateAccountVerify([FromBody] JObject accountInfo) { try { var jsonParams = HttpUtil.Deserialize(accountInfo); string id = jsonParams.id; string auth = jsonParams.token; string password = jsonParams.password; if (!redis.IsSet(auth)) { return(new Response(3001, "请求不存在").Convert()); } if (!(id == redis.Get <string>(auth))) { return(new Response(2002, "无权修改此账户的密码").Convert()); } User user = UserDao.GetUserById(id); if (user == null) { return(new Response(1001, "用户不存在").Convert()); } if (user.passwd == password) { return(new Response(1001, "不能与默认密码相同").Convert()); } int res1 = UserDao.ChangePwd(id, password); if (res1 == 1) { int res2 = UserDao.ChangeIsAccept(id); if (res2 == 1) { LogUtil.Log(Request, "激活账户", id, id, user.role); return(new Response(1001, "成功激活账户").Convert()); } else { return(new Response(1001, "账户已激活").Convert()); } } else { return(new Response(1001, "不能与默认密码相同").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage AdminGetAllExperiments() { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); int termId = 0; int courseId = 0; if (jsonParams.ContainsKey("termId")) { termId = Convert.ToInt32(jsonParams["termId"]); } if (jsonParams.ContainsKey("courseId")) { courseId = Convert.ToInt32(jsonParams["courseId"]); } bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); //string id = "admin"; User user = UserDao.GetUserById(id); if (user.role < 3) { return(new Response(2002, "权限不足").Convert()); } List <Experiment> experiments = ExperimentDao.GetExperimentByCourseIdAndTermId(courseId, termId); if (user.role == 3) { List <Course> courses = CourseDao.GetCourseByDepId(user.department_id); experiments = experiments.Where(e => courses.Exists(c => c.id == e.course_id)).ToList(); } return(new Response(1001, "获取成功", ExperimentDao.GetExpRet(experiments)).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 DeleteUser([FromBody] JObject userAccount) { 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); //string id = "16211084"; User user = UserDao.GetUserById(id); if (user.role != 3 && user.role != 4) { return(new Response(2002).Convert()); } var jsonParams = HttpUtil.Deserialize(userAccount); List <string> userIds = jsonParams.userid.ToObject <List <string> >(); List <User> users = UserDao.FindUserByIds(userIds); if (user.role == 3)//院系管理员不能删院系管理员,系外教师和学生 { if (users.Exists(u => u.role >= 3)) { return(new Response(2002).Convert()); } if (users.Exists(u => (u.role <= 2 && u.department_id != user.department_id))) { return(new Response(2002).Convert()); } } UserDao.DeleteUser(users); return(new Response(1001, "删除成功").Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); //return new Response(4001, e.Message).Convert(); } }
public HttpResponseMessage GetCourseListByStuIdAndTerm([FromBody] JObject stuIdAndTerm) { List <Dictionary <string, string> > retData = new List <Dictionary <string, string> >(); Dictionary <string, string> courseInfo; try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); string term = jsonParams["term"]; bool isLogin = redis.IsSet(signature); if (!isLogin) { return(new Response(2001, "未登录账户").Convert()); } string targetId = redis.Get <string>(signature); int termId = CourseDao.GetTermByName(term).id; List <Course> courseList = CourseDao.GetCoursesByStuIdAndTermId(targetId, termId).ToList(); foreach (Course c in courseList) { courseInfo = new Dictionary <string, string> { { "id", c.id.ToString() }, { "name", c.name }, }; if (c.term_id == null) { courseInfo.Add("semester", ""); } else { courseInfo.Add("semester", CourseDao.GetTermById((int)c.term_id).name); } courseInfo.Add("teacher", UserDao.GetUserById(c.teacher_id).name); courseInfo.Add("department", CourseDao.GetDepartmentById(c.department_id).name); retData.Add(courseInfo); } return(new Response(1001, "获取成功", retData).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 GetLogs() { 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); User user = UserDao.GetUserById(id); if (user.role != 4) { return(new Response(2002).Convert()); } List <System_log> logList; var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); using (var logs = new Logger()) { if (jsonParams.Count > 0) { int page = int.Parse(jsonParams["page"]); int size = int.Parse(jsonParams["size"]); int count; logList = logs.Logs.Pagination(l => (-l.id), page, size, out count).ToList(); Dictionary <string, object> ret = new Dictionary <string, object>(); ret.Add("data", AddUserNameIntoLogList(logList)); ret.Add("count", count); return(new Response(1001, "成功", ret).Convert()); } else { logList = logs.Logs.ToList(); return(new Response(1001, "成功", AddUserNameIntoLogList(logList)).Convert()); } } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage Register([FromBody] JObject account) { try { var jsonParams = HttpUtil.Deserialize(account); string id = jsonParams.id; string pwd = ConfigurationManager.AppSettings["DefaultUserPasswd"]; string name = jsonParams.name; string email = jsonParams.email; pwd = HttpUtil.Encrypt(pwd, System.Text.Encoding.UTF8); User user = UserDao.GetUserById(id.ToLower()); if (user == null) { return(new Response(1001, "用户不存在").Convert()); } if (user.is_accept != null) { return(new Response(1001, "该用户已经激活").Convert()); } user.passwd = pwd; user.name = name; user.email = jsonParams.email; user.is_accept = false; UserDao.ChangeInfo(user); if (user.email != null) { Dictionary <string, string> retData = new Dictionary <string, string>(); string uuid = System.Guid.NewGuid().ToString(); redis.Set(uuid, id, 60); retData.Add("id", id); retData.Add("token", uuid); string href = ConfigurationManager.AppSettings["webBase"] + "/security/activateAccount" + "?id=" + user.id + "&token=" + uuid; string res = EmailUtil.SendEmail("账户激活", "请点击以下网址来激活用户", user.id, 1, href); //todo: 发送激活邮件 return(new Response(1001, "发送激活邮件", retData).Convert()); } return(new Response(1001, "成功激活").Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(new Response(4001).Convert()); } }
public HttpResponseMessage StartPeerAssessment([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 (exp.peer_assessment_start == true) { return(new Response(3001, "互评已开启,请勿重复操作").Convert()); } ///权限控制,该课程助教与老师可以访问 if (CourseDao.GetAssistantsByCourseId(course.id).Where(a => a.student_id == id).Count() == 1 || id == course.teacher_id) { AssignmentDao.SetStandardAssignment(expid, 4); AssignmentDao.AssignPeerAsssessment(expid); exp.peer_assessment_start = true; ExperimentDao.ChangeExperimentInfo(exp); return(new Response(1001, "开启成功").Convert()); } else { return(new Response(2002, "无权开启互评").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage DeleteTerm([FromBody] JObject terminfo) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } var jsonParams = HttpUtil.Deserialize(terminfo); string termname = jsonParams.name; bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } string targetId = redis.Get <string>(signature); if (UserDao.GetUserById(targetId).role != 4) { return(new Response(2002, "无权限删除学期信息").Convert()); } else { Term t = CourseDao.GetTermByName(termname); if (t != null) { if (CourseDao.GetAllCourse().Where(c => c.term_id == t.id).Count() > 0) { return(new Response(1002, "该学期仍有课程,无法删除").Convert()); } int res = UserDao.DeleteTerm(t); if (res == 1) { LogUtil.Log(Request, "删除学期", t.id.ToString(), targetId, UserDao.GetUserById(targetId).role); return(new Response(1002, "删除学期成功").Convert()); } } return(new Response(1002, "删除学期失败").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(new Response(4001).Convert());; } }
public HttpResponseMessage ActivateAccount() { Dictionary <string, string> retData = new Dictionary <string, string>(); try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); string email = jsonParams["email"]; var tmp = Request.Headers; string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } string targetId = redis.Get <string>(signature); bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } User user = UserDao.GetUserById(targetId); if (user == null) { return(new Response(1001, "用户不存在").Convert()); } UserDao.ChangeInfo(user.id, user.name, email); string uuid = System.Guid.NewGuid().ToString(); redis.Set(uuid, targetId, 60); retData.Add("id", targetId); retData.Add("token", uuid); string href = ConfigurationManager.AppSettings["webBase"] + "/security/activateAccount" + "?id=" + user.id + "&token=" + uuid; string res = EmailUtil.SendEmail("账户激活", "请点击以下网址来激活用户", user.id, 1, href); //todo: 发送激活邮件 return(new Response(1001, "发送激活邮件", retData).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 ResetPasswordChange([FromBody] JObject account) { Dictionary <string, string> retData = new Dictionary <string, string>(); try { var jsonParams = HttpUtil.Deserialize(account); string id = jsonParams.id; string auth = jsonParams.token; string password = jsonParams.password; if (!redis.IsSet(auth)) { return(new Response(3001, "请求不存在").Convert()); } if (!(id == redis.Get <string>(auth))) { return(new Response(2001, "无权修改此账户的密码").Convert()); } User user = UserDao.GetUserById(id); if (user == null) { return(new Response(1001, "用户不存在").Convert()); } redis.Delete(auth); int res = UserDao.ChangePwd(id, password); if (res == 1) { LogUtil.Log(Request, "修改密码", id, id, user.role); return(new Response(1001, "成功修改密码").Convert()); } else { return(new Response(1001, "不能与原密码相同").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage AddTerm([FromBody] JObject newTerm) { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } Term term = new Term(); QuickCopy.Copy <Term>(newTerm, ref term); bool login = redis.IsSet(signature); if (!login) { return(new Response(2001, "未登录账户").Convert()); } string targetId = redis.Get <string>(signature); if (UserDao.GetUserById(targetId).role != 4) { return(new Response(2002, "无权限添加学期信息").Convert()); } else { Term temp = CourseDao.GetTermByName(term.name); if (temp != null) { return(new Response(1002, "添加学期失败").Convert()); } int res = UserDao.AddTerm(term); if (res == 1) { Term t = CourseDao.GetTermByName(term.name); LogUtil.Log(Request, "添加学期", t.id.ToString(), targetId, UserDao.GetUserById(targetId).role); return(new Response(1001, "添加学期成功").Convert()); } return(new Response(1001, "添加学期失败").Convert()); } } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(new Response(4001).Convert());; } }
public HttpResponseMessage Logout() { try { string signature = HttpUtil.GetAuthorization(Request); if (signature == null || !redis.IsSet(signature)) { return(new Response(2001, "未登录账户").Convert()); } string id = redis.Get <string>(signature); redis.Delete(id); redis.Delete(signature); return(new Response(1001, "注销成功").Convert()); }catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage PreviewFile() { try { var jsonParams = Request.GetQueryNameValuePairs().ToDictionary(k => k.Key, v => v.Value); string id = jsonParams["id"]; File file = AssignmentDao.GetFileById(id); if (file.preview == null) { return(new Response(3001, "无法生成预览").Convert()); } return(HttpUtil.DownloadFile(file.preview, "preview.pdf", false)); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }
public HttpResponseMessage AdminChangeUserPassword([FromBody] JObject account) { 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); //string id = "16211084"; User user = UserDao.GetUserById(id); if (user.role != 3 && user.role != 4) { return(new Response(2002).Convert()); } User toAdd = new User(); QuickCopy.Copy(account, ref toAdd); User target = UserDao.GetUserById(toAdd.id); if (user.role == 3 && (target.role >= 3 || user.department_id != target.department_id)) { return(new Response(2002).Convert()); } UserDao.ChangeInfo(toAdd); return(new Response(1001, "修改成功").Convert()); } catch (Exception e) { ErrorLogUtil.WriteLogToFile(e, Request); return(Response.Error()); } }