Esempio n. 1
0
        private async void GetCourseByDean()
        {
            BitmapImage bmp    = new BitmapImage();
            Stream      stream = await WebConnection.Connect_for_stream("http://dean.pku.edu.cn/student/yanzheng.php?act=init");

            if (stream == null)
            {
                Constants.BoxPage.ShowMessage("获取验证码失败!");
                return;
            }
            var ran_stream = await Util.StreamToRandomAccessStream(stream);

            bmp.SetSource(ran_stream);
            IMGverify.Source = bmp;
            PRGRScourse.ProgressStart();
            ContentDialogResult res = await DLGverify.ShowAsync();

            if (res != ContentDialogResult.Primary)
            {
                this.IsEnabled = true;
                PRGRScourse.ProgressEnd();
                return;
            }
            String str = await Dean.get_session_id(VerifyCode);

            if (str == "")
            {
                return;
            }

            /**
             * 下面这段注释的代码可能是用来获取自选课程的,不是dean
             */
            //List<Parameters> list = new List<Parameters>();
            //list.Add(new Parameters("token", Constants.token));
            //list.Add(new Parameters("phpsessid", str));
            //Parameters parameter = await WebConnection.Connect(Constants.domain + "/services/pkuhelper/course.php", list);
            Parameters parameter = await WebConnection.Connect("http://dean.pku.edu.cn/student/newXkInfo_1105.php?PHPSESSID=" + str, null);

            if (parameter != null && parameter.name == "200")
            {
                CourseUtil.DecodeDeanHtml(parameter.value);
                CourseUtil.SaveCourses("DeanCourses", CourseUtil.DeanCourses);
                if (Constants.CourseUseCustom)
                {
                    await CourseUtil.GetCustomCourses(str);
                }
                ShowCourse();
                this.IsEnabled = true;
                PRGRScourse.ProgressEnd();
            }
            else
            {
                Util.DealWithDisconnect(parameter);
                this.IsEnabled = true;
                PRGRScourse.ProgressEnd();
            }
        }
        private async void BTNsaveCustomCourse_Click(object sender, RoutedEventArgs e)
        {
            PRGRSadd.ProgressStart();
            List <Parameters> l = new List <Parameters>();

            l.Add(new Parameters("token", Constants.token));
            l.Add(new Parameters("operation", "set"));
            l.Add(new Parameters("content", CourseUtil.ToStandardJsonStr(CourseUtil.CustomCourses)));
            Parameters parameter = await WebConnection.Connect(Constants.domain + "/services/course.php", l);

            if (!parameter.name.Equals("200"))
            {
                Util.DealWithDisconnect(parameter);
                PRGRSadd.ProgressEnd();
                return;
            }
            try
            {
                JsonObject json = JsonObject.Parse(parameter.value);
                int        code;
                try
                {
                    code = (int)json.GetNamedNumber("code");
                }
                catch
                {
                    code = int.Parse(json.GetNamedString("code"));
                }
                if (!(code == 0))
                {
                    return;
                }
                CourseUtil.SaveCourses("CustomCourses", CourseUtil.CustomCourses);
                CourseUtil.currentCoursePage.RefreshCourse();
                PRGRSadd.ProgressEnd();
                STRBDpopout.Begin();
            }
            catch (Exception ex)
            {
                Debug.WriteLine("fail to update custom courses! at" + ex.StackTrace);
            }
        }
        private async void GetCustomCourses()
        {
            PRGRSadd.ProgressStart();
            CourseUtil.CustomCourses.Clear();
            Parameters parameter = await WebConnection.Connect(Constants.domain + "/services/pkuhelper/course.php?token=" + Constants.token + "&?=" + DateTime.Now.Millisecond, null);

            if (!"200".Equals(parameter.name))
            {
                Util.DealWithDisconnect(parameter);
                PRGRSadd.ProgressEnd();
                return;
            }
            CourseUtil.ParseCourseJson(parameter.value, ref CourseUtil.CustomCourses);
            CourseUtil.SaveCourses("CustomCourses", CourseUtil.CustomCourses);
            CourseUtil.SimpleCustomInfo.Clear();
            foreach (var info in CourseUtil.CustomCourses)
            {
                CourseUtil.SimpleCustomInfo.Add(new SimpleCustomCourseInfo(info.Key));
            }
            LSTVWcustomCourse.ItemsSource = CourseUtil.SimpleCustomInfo;
            PRGRSadd.ProgressEnd();
        }