Esempio n. 1
0
        public async Task <List <Course> > GetUserPlanForCurrentSemester(bool IsOffline, bool clean = false)
        {
            if (IsOffline)
            {
                var fileService = DependencyService.Get <ISaveAndLoad>();
                if (fileService == null || !fileService.FileExists("Schedule1.txt"))
                {
                    throw new ArxiusFileException("Brak zapisanego offline planu, aby go wygenerować, wejdź na widok planu zajęć");
                }
                else
                {
                    var page = await fileService.LoadTextAsync("Schedule1.txt");

                    if (page == null || page.Length == 0)
                    {
                        throw new ArxiusException();
                    }
                    return(CoursesParsers.GetUserPlanForCurrentSemester(page));
                }
            }
            return(await Cache.Get("GetUserPlanForCurrentSemester", async() =>
            {
                var page = await HTMLUtils.GetPage("/records/schedule/");
                var fileService = DependencyService.Get <ISaveAndLoad>();
                try
                {
                    await fileService.SaveTextAsync("Schedule1.txt", page);
                }
                catch
                {
                }
                return CoursesParsers.GetUserPlanForCurrentSemester(page);
            }, clean));
        }
Esempio n. 2
0
        private async Task <Course> GetCourseECTSPoints(Course course, bool clean = false)
        {
            var page = await HTMLUtils.GetPage(course.Url);

            CoursesParsers.GetCourseECTSandGroup(page, course);
            return(course);
        }
Esempio n. 3
0
 public async Task <List <Course> > GetAllCourses(bool clean = false)
 {
     return(await Cache.Get("GetAllCourses", async() =>
     {
         var page = await HTMLUtils.GetPage("/courses/");
         return CoursesParsers.GetAllCourses(page, false);
     }, clean));
 }
Esempio n. 4
0
        public async Task <bool> EnrollOrUnroll(_Class _class, bool clean = false)
        {
            var response = await HTMLUtils.PostString("/records/set-enrolled", string.Format("csrfmiddlewaretoken={0}&group={1}&enroll={2}", HTMLUtils.csrfToken, _class.enrollmentId, (!_class.IsSignedIn).ToString().ToLower()));

            var sigingResult = CoursesParsers.IsSignedIn(response, _class);

            return(sigingResult.Item1 != _class.IsSignedIn); //if differs, then some error must have occured
        }
Esempio n. 5
0
 public async Task <Tuple <int, int, List <Student> > > GetStudentsList(_Class _class, bool clean = false)
 {
     return(await Cache.Get(new { c = _class, a = "GetStudentsList" }, async() =>
     {
         var page = await HTMLUtils.GetPage(_class.ListUrl);
         return CoursesParsers.GetStudentsList(page);
     }, clean));
 }
Esempio n. 6
0
        public async Task <Course> GetCourseWideDetails(Course course, bool clean = false)
        {
            var ret = await Cache.Get(new { c = course, a = "GetCourseWideDetails" }, async() =>
            {
                var s    = new Stopwatch();
                var page = await HTMLUtils.GetPage(course.Url);
                s.Start();
                CoursesParsers.GetCourseWideDetails(page, course);
                s.Stop();
                Debug.WriteLine("Parsing - {0}", s.Elapsed);

                return(course);
            }, clean);

            var fileService = DependencyService.Get <ISaveAndLoad>();

            if (fileService != null && fileService.FileExists(string.Format(Properties.Resources.FileName, course.Name)))
            {
                ret.Notes = await fileService.LoadTextAsync(string.Format(Properties.Resources.FileName, course.Name));
            }
            return(ret);
        }