public async Task <IActionResult> Edit(int id, [Bind("Id,StudentId,CourseId,Score")] CourseScore courseScore)
        {
            if (id != courseScore.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    Admin.UpdateCourseScore(courseScore);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (Admin.GetCourseScoreByScoreId(courseScore.Id) == null)
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(courseScore));
        }
Example #2
0
        public CourseScore SelectById(CourseScore model)
        {
            //修改
            string sql = "select * from course_score where id=@id";

            SQLiteParameter[] ps =
            {
                new SQLiteParameter("id", model.id)
            };
            DataTable table = SqliteHelper.Select(sql, ps);
            //修改
            List <CourseScore> list = new List <CourseScore>();

            //遍历数据表,将数据转存到集合中
            foreach (DataRow row in table.Rows)
            {
                //修改
                list.Add(new CourseScore()
                {
                    id          = Convert.ToInt32(row["id"]),
                    student_id  = Convert.ToInt32(row["student_id"]),
                    course_id   = Convert.ToInt32(row["course_id"]),
                    score       = Convert.ToDouble(row["score"]),
                    add_time    = Convert.ToDateTime(row["add_time"]),
                    update_time = Convert.ToDateTime(row["update_time"]),
                    deleted     = Convert.ToInt32(row["deleted"])
                });
            }
            //修改
            CourseScore model2 = list[0];

            return(model2);
        }
Example #3
0
 void HandleOnScoreChanged(CourseScore scoreObject)
 {
     scoreColumns[activeHole].SetScore(scoreObject.CurrentHoleScore.Score);
     totalColumn.SetScore(scoreObject.TotalScore,scoreObject.CoursePar);
     string scoreString = scoreObject.PlusMinusScore > 0 ? string.Format("+{0:D}",scoreObject.PlusMinusScore) : scoreObject.PlusMinusScore.ToString();
     totalScoreField.text = string.Format("Total Score: {0}",scoreString);
 }
Example #4
0
        public scoreq()
        {
            InitializeComponent();
            CourseScore a = new CourseScore();

            this.Data1 = a.Query();
            paint_pie(Data1);
        }
Example #5
0
        private void button2_Click(object sender, EventArgs e)
        {
            CourseScore a = new CourseScore();

            Data1              = new List <CourseScore>();
            this.Data1         = a.Query2(textBox2.Text);
            this.textBox2.Text = null;
            paint_pie(Data1);
        }
        public async Task <IActionResult> Create([Bind("StudentId,CourseId,Score")] CourseScore courseScore)
        {
            if (ModelState.IsValid)
            {
                Admin.AddStudentScore(courseScore.StudentId, courseScore.CourseId, courseScore.Score);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(courseScore));
        }
Example #7
0
        public int Update(CourseScore model)
        {
            if (SelectById(model).deleted == 1)
            {
                return(-2);
            }
            List <Object>          obj = updateSQL(model);
            string                 sql = obj[0].ToString();
            List <SQLiteParameter> ps  = (List <SQLiteParameter>)obj[1];

            return(SqliteHelper.update(sql, ps.ToArray()));
        }
Example #8
0
        public int UpdateScore(CourseScore model)
        {
            if (SelectById(model).deleted == 1)
            {
                return(-2);
            }
            List <SQLiteParameter> ps = new List <SQLiteParameter>();
            string sql = "update course_score set score=@score where id=@id";

            ps.Add(new SQLiteParameter("@score", model.score));
            ps.Add(new SQLiteParameter("@id", model.id));

            return(SqliteHelper.update(sql, ps.ToArray()));
        }
Example #9
0
        public scorequrry(CourseScore list1)
        {
            InitializeComponent();
            chart_paint(list1);
            this.SizeChanged  += new Resize(this).Form1_Resize;
            this.textBox2.Text = list1.courseName;
            this.textBox3.Text = list1.teacherName;
            this.textBox4.Text = list1.courseType;
            this.textBox1.Text = list1.score.ToString();
            chart1.Series[0]["PieLabelStyle"] = "Outside"; //将文字移到外侧

            chart1.Series[0]["PieLineColor"] = "Black";    //绘制黑色的连线。

            chart1.Series[0].Points.DataBindXY(xData, yData);
        }
Example #10
0
        public int Delete(CourseScore model)
        {
            if (SelectById(model).deleted == 1)
            {
                //如果deleted==1,已经删除,返回-2
                return(-2);
            }
            //修改
            string sql = "update course_score set deleted=1 where id=@id";

            SQLiteParameter[] ps =
            {
                new SQLiteParameter("@id", model.id),
            };
            return(SqliteHelper.Delete(sql, ps));
        }
Example #11
0
        public int Add(CourseScore model)
        {
            //修改
            string sql = "insert into course_score(student_id,course_id,score,add_time) " +
                         "values (@student_id,@course_id,@score,@add_time)";

            SQLiteParameter[] ps =
            {
                //修改
                new SQLiteParameter("@student_id", model.student_id),
                new SQLiteParameter("@course_id",  model.course_id),
                new SQLiteParameter("@score",      model.score),
                new SQLiteParameter("@add_time",   DateTime.Now)
            };

            return(SqliteHelper.Add(sql, ps));
        }
        public ActionResult <List <CourseScore> > getCourseScore()
        {
            Console.WriteLine("getting CourseScore");
            JwCrawler.initAttributes();

            // 得到当前的http请求
            var    req           = HttpContext.Request;
            string tokenToDecode = req.Headers["Authorization"].ToString().Split(' ').Last();     // 获取token
            // 解码的token转化为json对象
            JObject token    = (JObject)JsonConvert.DeserializeObject(DecodeJwt.decode(tokenToDecode));
            string  token_id = token["sub"].ToString();     // 拿到id

            Console.WriteLine($"id frome token: {token_id}");

            // 根据id从数据库里面查询密码
            User query = db.users.FirstOrDefault(
                o => o.id == Convert.ToInt64(token_id)
                );

            // 调用爬虫
            JwCrawler.initAttributes();
            JwCrawler.login(query.id, getPwdEncrypted(query.portalpwd, JwCrawler.dynamicPwdEncryptSalt).Result);
            JwCrawler.loginJw();
            List <CourseScore> score = CourseScoreCrawler.crawlCourseScore(Convert.ToInt64(token_id));

            JwCrawler.logout();
            // 成绩顺便保存到数据库中
            foreach (CourseScore s in score)
            {
                CourseScore sQuery = db.courseScore.Where(
                    o =>
                    o.courseid == s.courseid &&
                    o.userid == s.userid
                    ).FirstOrDefault();

                if (sQuery == null && s.score != -1)
                {
                    db.courseScore.Add(s);
                }
            }

            db.SaveChanges();
            return(score);
        }
Example #13
0
        private List <Object> updateSQL(CourseScore model)
        {
            List <SQLiteParameter> ps = new List <SQLiteParameter>();
            string sql  = "update course_score set ";
            bool   flag = false;

            if (model.student_id != 0)
            {
                if (flag)
                {
                    sql += ",";
                }
                sql += "student_id=@student_id";
                ps.Add(new SQLiteParameter("@student_id", model.student_id));
                flag = true;
            }
            if (model.course_id != 0)
            {
                if (flag)
                {
                    sql += ",";
                }
                sql += "course_id=@course_id";
                ps.Add(new SQLiteParameter("@course_id", model.course_id));
                flag = true;
            }
            if (flag)
            {
                sql += ",";
            }
            sql += "update_time=@update_time";
            ps.Add(new SQLiteParameter("@update_time", DateTime.Now));
            sql += " where id=@id";
            ps.Add(new SQLiteParameter("@id", model.id));
            List <Object> obj = new List <object>();

            obj.Add(sql);
            obj.Add(ps);
            return(obj);
        }
Example #14
0
 public void chart_paint(CourseScore a)
 {
     if (a.score > 90)
     {
         yData[0] += 1;
     }
     else if (a.score > 80)
     {
         yData[1] += 1;
     }
     else if (a.score > 70)
     {
         yData[2] += 1;
     }
     else if (a.score > 60)
     {
         yData[3] += 1;
     }
     else
     {
         yData[0] += 1;
     }
 }
Example #15
0
 // Use this for initialization
 void Awake()
 {
     CourseHandler.OnActionBegin += HandleOnActionBegin;
     CourseHandler.OnHoleBegin += ResetHoleScore;
     ObjectPlacement.OnObjectSelected += HandleOnObjectPlaced;
     ObjectPlacement.OnObjectRemoved += HandleOnObjectRemoved;
     scorer = new CourseScore(Game.SelectedCourse);
 }
Example #16
0
 void HandleOnScoreChanged(CourseScore scoreObject)
 {
     holeNumber.text = currentHole.ToString();
     strokes.text = string.Format("{0:D} Strokes",scoreObject.CurrentHoleScore.Strokes);
     objects.text = string.Format("{0:D} Objects",scoreObject.CurrentHoleScore.Objects);
 }
Example #17
0
        public static List <CourseScore> crawlCourseScore(long userId)
        {
            JwCrawler.client.DefaultRequestHeaders.Clear();
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Accept",
                "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Accept-Encoding",
                "gzip, deflate"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Accept-Language",
                "zh-CN,zh;q=0.9,en;q=0.8"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Connection",
                "keep-alive"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Host",
                "bkjw.whu.edu.cn"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Referer",
                "http://bkjw.whu.edu.cn/stu/stu_course_parent.jsp"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "Upgrade-Insecure-Requests",
                "1"
                );
            JwCrawler.client.DefaultRequestHeaders.Add(
                "User-Agent",
                "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
                );

            string courseTableUrl = "http://bkjw.whu.edu.cn/servlet/Svlt_QueryStuScore";

            courseTableUrl += "?csrftoken=" + JwCrawler.csrftoken;
            courseTableUrl += "&year=" + "0";
            courseTableUrl += "&term=" + "";
            courseTableUrl += "&learntype=" + "";
            courseTableUrl += "&scoreflag=" + "0";
            HttpResponseMessage response = JwCrawler.client.GetAsync(courseTableUrl).Result;

            Console.WriteLine($"return status: {response.StatusCode}");
            CookieCollection cookies = JwCrawler.handler.CookieContainer.GetCookies(new Uri(courseTableUrl));   // 拿到cookie

            foreach (Cookie c in cookies)
            {
                Console.WriteLine(c.ToString());
                Console.WriteLine(c.Value);
            }

            var          courseScoreHtml = response.Content.ReadAsStringAsync().Result;
            HtmlDocument doc             = new HtmlDocument();

            doc.LoadHtml(courseScoreHtml);
            // Console.WriteLine(courseScoreHtml);   // 打印出来看看

            HtmlNode bodyNode = doc.DocumentNode.SelectSingleNode("//table");

            List <CourseScore> scores = new List <CourseScore>();         // 要返回的score
            bool flag = true;

            foreach (HtmlNode row in bodyNode.SelectNodes(".//tr"))
            {
                if (flag)
                {
                    flag = false;
                    continue;
                }
                short       count = 0;
                CourseScore score = new CourseScore();
                foreach (HtmlNode column in row.SelectNodes(".//td"))
                {
                    string result = Regex.Replace(column.InnerText, @"\s", "");
                    // if(result == null || result== "")
                    //     continue;

                    switch (count)
                    {
                    case 0:
                        Console.WriteLine(column.Attributes["data-lsnid"].Value);
                        long id = Convert.ToInt64(Regex.Replace(column.Attributes["data-lsnid"].Value, @"\s", ""));
                        score.courseid   = id;
                        score.courseName = result;
                        break;

                    case 1:
                        score.courseType = result;
                        break;

                    case 2:
                        score.tsType = result;
                        break;

                    case 3:
                        score.courseAttribute = result;
                        break;

                    case 4:
                        score.credits = (float)Convert.ToDouble(result);
                        break;

                    case 5:
                        score.teacherName = result;
                        break;

                    case 6:
                        score.school = result;
                        break;

                    case 7:
                        score.learnType = result;
                        break;

                    case 8:
                        score.year = Convert.ToInt16(result);
                        break;

                    case 9:
                        score.term = result == "1" ? false : true;
                        break;

                    case 10:

                        score.score = result == "" ? -1 : (float)Convert.ToDouble(result);
                        break;

                    default:
                        break;
                    }

                    count++;
                    Console.WriteLine(result);

                    // Console.WriteLine("");
                }

                score.userid = userId;
                scores.Add(score);                  // 课程记录添加到集合中
            }

            return(scores);
        }