예제 #1
0
    void Awake()
    {
        if (_ins == null)
        {
            // Populate with first instance
            _ins = this;
            DontDestroyOnLoad(this);
        }
        else
        {
            // Another instance exists, destroy
            if (this != _ins)
            {
                Destroy(this.gameObject);
            }
        }

        UpdateCourseList();
        courseList = CourseUtil.SortCourses(courseList);

        SaveCurCourseDataIfEmpty();
        LoadCurCourseData();
        SaveCourseCompletionDataIfEmpty();
        LoadCourseCompletionData();
    }
예제 #2
0
 private void ShowCourse()
 {
     try
     {
         if (Constants.CourseUseElective)
         {
             if (Constants.CourseUseCustom)
             {
                 CourseUtil.CourseCover(CourseUtil.ElectiveCourses);
             }
             ShowCourse(CourseUtil.ElectiveCourses);
         }
         else
         {
             if (Constants.CourseUseCustom)
             {
                 CourseUtil.CourseCover(CourseUtil.DeanCourses);
             }
             ShowCourse(CourseUtil.DeanCourses);
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine("Show course error! at" + e.StackTrace);
     }
 }
예제 #3
0
        private async void ConnectCourse()
        {
            Parameters parameter = await WebConnection.Connect("http://elective.pku.edu.cn/elective2008/edu/pku/stu/elective/controller/electiveWork/showResults.do", null);

            if (!"200".Equals(parameter.name))
            {
                Util.DealWithDisconnect(parameter);
                this.IsEnabled = true;
                PRGRScourse.ProgressEnd();
                return;
            }
            try
            {
                CourseUtil.DecodeElectiveHtml(parameter.value);
                if (Constants.CourseUseCustom)
                {
                    await CourseUtil.GetCustomCourses("(null)");
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine("fail to decode elective HTML! at" + e.StackTrace);
            }
            ShowCourse();
        }
예제 #4
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();
            }
        }
예제 #5
0
        private async void GetWeekInfo()
        {
            try
            {
                Parameters result = await WebConnection.Connect(Constants.domain + "/pkuhelper/../services/info.php?device=iPhone6%2C2&platform=iOS&sysver=9.3.4&uid=" + Constants.username + "&version=2.1.1", null);

                JsonObject resJson = JsonObject.Parse(result.value);
                int        week    = (int)resJson.GetNamedNumber("week");
                Constants.Week = week;
                CourseUtil.InitCourses();
            }
            catch
            {
            }
        }
예제 #6
0
        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);
            }
        }
예제 #7
0
        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();
        }
예제 #8
0
 // Populate the courseList variable with Course assets in the /Courses folder
 public void UpdateCourseList()
 {
     courseList = CourseUtil.LoadAllCourses().ToList <Course>();
 }
예제 #9
0
 private void STRBDpopout_Completed(object sender, object e)
 {
     CourseUtil.InitCustom();
     this.Frame.Navigate(typeof(BlankPage));
 }