From 80ba0dc027904ba664bf112cd867144568463271 Mon Sep 17 00:00:00 2001 From: "leon.hoppe" Date: Tue, 5 Sep 2023 08:24:25 +0200 Subject: [PATCH] fixed some backend errors + added timing management back on home page --- BetterIServ.Backend/Controllers/IServController.cs | 1 + BetterIServ.Backend/Controllers/MailController.cs | 2 ++ BetterIServ.Mobile/src/app/api/storage.service.ts | 2 +- BetterIServ.Mobile/src/app/pages/home/home.page.ts | 5 +++-- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/BetterIServ.Backend/Controllers/IServController.cs b/BetterIServ.Backend/Controllers/IServController.cs index b2af1a5..117d385 100644 --- a/BetterIServ.Backend/Controllers/IServController.cs +++ b/BetterIServ.Backend/Controllers/IServController.cs @@ -64,6 +64,7 @@ public class IServController : ControllerBase { var list = html.DocumentNode.SelectSingleNode("//body/div/div[2]/div[3]/div/div/div[2]/div/div/div/div/ul[1]"); var courses = new List(); + if (list?.ChildNodes == null) return new SingleResult { Value = Array.Empty() }; foreach (var child in list.ChildNodes) { if (child.ChildNodes.Count < 1) continue; courses.Add(child.ChildNodes[0].InnerText); diff --git a/BetterIServ.Backend/Controllers/MailController.cs b/BetterIServ.Backend/Controllers/MailController.cs index a54a9ec..92ef9e2 100644 --- a/BetterIServ.Backend/Controllers/MailController.cs +++ b/BetterIServ.Backend/Controllers/MailController.cs @@ -1,6 +1,7 @@ using System.Net; using System.Net.Mail; using System.Text; +using Aspose.Email.Clients; using Aspose.Email.Clients.Imap; using BetterIServ.Backend.Entities; using Microsoft.AspNetCore.Mvc; @@ -40,6 +41,7 @@ public class MailController : ControllerBase { [HttpPost("list/{page}")] public async Task> GetMails([FromBody] Credentials credentials, [FromQuery] string folder, [FromRoute] int page) { using var client = new ImapClient($"imap.{credentials.Domain}", credentials.Username, credentials.Password); + if (client.ConnectionState != ConnectionState.Open) return Array.Empty(); await client.SelectFolderAsync(folder); var messages = await client.ListMessagesByPageAsync(20, page, new PageSettingsAsync()); diff --git a/BetterIServ.Mobile/src/app/api/storage.service.ts b/BetterIServ.Mobile/src/app/api/storage.service.ts index 745cd7d..61c7a86 100644 --- a/BetterIServ.Mobile/src/app/api/storage.service.ts +++ b/BetterIServ.Mobile/src/app/api/storage.service.ts @@ -17,7 +17,7 @@ export class StorageService { const data = await firstValueFrom(this.client.get<{value: string}>(environment.backend + `/storage?user=${IServService.userdata.username}&item=${item}`)); if (isJson) return JSON.parse(data.value) as T; - else return data.value as T; + return data.value as T; }catch { return defaultValue; } diff --git a/BetterIServ.Mobile/src/app/pages/home/home.page.ts b/BetterIServ.Mobile/src/app/pages/home/home.page.ts index 56b2834..0052c28 100644 --- a/BetterIServ.Mobile/src/app/pages/home/home.page.ts +++ b/BetterIServ.Mobile/src/app/pages/home/home.page.ts @@ -13,6 +13,7 @@ import {Router} from "@angular/router"; import {Course, Lesson, Timetable} from "../../entities/course"; import {LessonComponent} from "../../components/lesson/lesson.component"; import {StorageService} from "../../api/storage.service"; +import {time} from "ionicons/icons"; @Component({ selector: 'app-home', @@ -42,7 +43,7 @@ export class HomePage implements OnInit { const classPromise = this.iserv.getCoursesAndClass(); const subsPromise = this.units.getSubstitutionPlan("today"); const timetablePromise = this.storage.getItem("timetable"); - await Promise.all([classPromise, subsPromise]); + await Promise.all([classPromise, subsPromise, timetablePromise]); this.classData = await classPromise; let unitsData = await subsPromise; @@ -50,7 +51,7 @@ export class HomePage implements OnInit { const timetable = await timetablePromise; if (scheduleDay != undefined && timetable != undefined) { - this.lessons = timetable[scheduleDay].filter(lesson => lesson != undefined && this.storage.isLessonThisWeek(lesson)); + this.lessons = timetable[scheduleDay].filter((lesson: Lesson) => lesson != undefined && this.storage.isLessonThisWeek(lesson)); } if (this.dateIsPast(unitsData.date, this.today)) {