public async Task <(bool TokenExpired, List <ClassCache> classCaches)> UpdateTimetable(string accountId, string token, int reminderIndex, int weekCount = _DefaultWeekCount) { DateTime startOfWeek = WeekHelper.GetStartDayOfWeek(); DateTime endOfWeek = startOfWeek.AddDays(WeekHelper.Interval_EndOfWeek); List <ClassCache> caches = new List <ClassCache>(); for (int i = 0; i < weekCount; i++) { var result = await GetTimetable(startOfWeek, endOfWeek, accountId, token); if (result.TokenExpired) { return(true, null); } ClassCache cache = await LoadCache(startOfWeek, accountId); if (result.Classes != null) { cache = await UpdateTimetableInternal(result.Classes, cache, startOfWeek, accountId, reminderIndex); } caches.Add(cache); startOfWeek = startOfWeek.AddDays(WeekHelper.Interval_StartOfNextWeek); endOfWeek = endOfWeek.AddDays(WeekHelper.Interval_StartOfNextWeek); } return(false, caches); }
// To meet the Microsoft Store submission requirement. public static ClassCache LoadTestCache() { ClassCache ret = new ClassCache(WeekHelper.GetStartDayOfWeek(), new List <Class>(), new FileInfo("test.json")); DateTime baseTime = WeekHelper.GetStartDayOfWeek().AddDays(WeekHelper.Interval_StartOfNextWeek).AddHours(9); ret.ClassList.Add(new Class { ModuleCode = "EAP021", Location = "Foundation Building-FB321", StartTime = baseTime, EndTime = baseTime.AddHours(2) }); ret.ClassList.Add(new Class { ModuleCode = "MTH013", Location = "Science Building Block B-SB222", StartTime = baseTime.AddDays(1).AddHours(6), EndTime = baseTime.AddDays(1).AddHours(8) }); ret.ClassList.Add(new Class { ModuleCode = "CSE001", Location = "Science Building Block A-SA101", StartTime = baseTime.AddDays(2).AddHours(2), EndTime = baseTime.AddDays(2).AddHours(4) }); ret.ClassList.Add(new Class { ModuleCode = "EAP021", Location = "Foundation Building-FB321", StartTime = baseTime.AddDays(3).AddHours(2), EndTime = baseTime.AddDays(3).AddHours(4) }); ret.ClassList.Add(new Class { ModuleCode = "MTH013", Location = "Science Building Block B-SB222", StartTime = baseTime.AddDays(3).AddHours(6), EndTime = baseTime.AddDays(3).AddHours(8) }); ret.ClassList.Add(new Class { ModuleCode = "MTH007", Location = "Science Building Block D-SD325", StartTime = baseTime.AddDays(4).AddHours(2), EndTime = baseTime.AddDays(4).AddHours(4) }); return(ret); }