Exemple #1
0
 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());
     }
 }
Exemple #2
0
 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());
     }
 }
Exemple #3
0
        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());
            }
        }
Exemple #4
0
        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());
            }
        }
Exemple #5
0
        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());
            }
        }
Exemple #6
0
 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());
     }
 }
Exemple #7
0
        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());
            }
        }
Exemple #8
0
 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());
     }
 }
Exemple #9
0
        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());
            }
        }
Exemple #10
0
        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());
            }
        }