예제 #1
0
        private void GetSIMSResponseWithCookies()
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(string.Format("https://sims-prd.sfu.ca/psc/csprd_1/EMPLOYEE/HRMS/c/SA_LEARNER_SERVICES.SS_ES_STUDY_LIST.GBL?Page=SS_ES_STUDY_LIST&Action=U&ACAD_CAREER=UGRD&EMPLID=&INSTITUTION=SFUNV&STRM={0}", SemesterHelper.GetSemesterId()));

            request.CookieContainer = new CookieContainer();
            foreach (Cookie cookie in CookieService.GetCookies().Where(c => c.Domain != "cas.sfu.ca"))
            {
                if (cookie.Domain == ".sfu.ca")
                {
                    request.CookieContainer.Add(new Uri("http://www" + cookie.Domain + cookie.Path), cookie);
                }
                else
                {
                    request.CookieContainer.Add(new Uri("http://" + cookie.Domain + cookie.Path), cookie);
                }
            }
            request.BeginGetResponse(new AsyncCallback(GetClassesResponse), request);
        }
예제 #2
0
        public BooksVM()
        {
            Books = new ObservableCollection <Book>();
            List <Course> courses = Settings.LoadCourses();

            courses = courses.Where(c => c.Type == "Lecture").ToList();
            if (courses == null || courses.Count() == 0)
            {
                //error refresh schedule
                MessageBox.Show("No courses found. Please refresh courses before continuing");
            }
            else
            {
                var available = NetworkInterface.GetIsNetworkAvailable();
#if DEBUG
                available = false;
#endif
                if (!available)
                {
                    MessageBox.Show("No internet connection is available. Please connect to the internet before continuing.");
                }
                else
                {
                    HttpWebRequest request = null;
                    foreach (Course course in courses)
                    {
                        request        = (HttpWebRequest)HttpWebRequest.Create(string.Format("http://sfu.collegestoreonline.com/ePOS?form=shared3/textbooks/json/json_books.html&term={0}&dept={1}&crs={2}&sec={3}&go=Go", SemesterHelper.GetSemesterId(), Regex.Split(course.ClassName, @"(\w+)(\d)")[0].Trim().ToLower(), Regex.Split(course.ClassName, @"(\d+)")[1], course.Section));
                        request.Method = "GET";
                        request.BeginGetResponse(new AsyncCallback(GetBookResponse), request);
                    }

                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        OnPropertyChanged("Books");
                    });
                }
            }
        }
예제 #3
0
        private void GetSIMSResponse(IAsyncResult result)
        {
            HttpWebRequest  request  = (HttpWebRequest)result.AsyncState;
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);

            Cookie casCookie = CookieService.GetCookieWithName("CASTGC");

            CookieService.DeleteCookies();
            if (casCookie != null)
            {
                CookieService.AddCookie(casCookie);
            }
            CookieCollection cookies = request.CookieContainer.GetCookies(new Uri("https://go.sfu.ca"));

            foreach (Cookie cookie in cookies)
            {
                CookieService.AddCookie(cookie);
            }
            //Settings.GetStudentId();
            string         request2String = string.Format("https://sims-prd.sfu.ca/psc/csprd_1/EMPLOYEE/HRMS/c/SA_LEARNER_SERVICES.SS_ES_STUDY_LIST.GBL?Page=SS_ES_STUDY_LIST&Action=U&ACAD_CAREER=UGRD&EMPLID=&INSTITUTION=SFUNV&STRM={0}", SemesterHelper.GetSemesterId());
            HttpWebRequest request2       = (HttpWebRequest)HttpWebRequest.Create(request2String);

            request2.Method          = "GET";
            request2.CookieContainer = new CookieContainer();

            foreach (Cookie cookie in cookies)
            {
                if (cookie.Domain == ".sfu.ca")
                {
                    request2.CookieContainer.Add(new Uri("http://www" + cookie.Domain), cookie);
                }
                else
                {
                    request2.CookieContainer.Add(new Uri("https://" + cookie.Domain), cookie);
                }
            }


            request2.BeginGetResponse(new AsyncCallback(GetClassesResponse), request2);
        }