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)); }
private async Task <Course> GetCourseECTSPoints(Course course, bool clean = false) { var page = await HTMLUtils.GetPage(course.Url); CoursesParsers.GetCourseECTSandGroup(page, course); return(course); }
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)); }
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 }
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)); }
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); }