diff --git a/Management.Web/Shared/Module/Assignment/NewAssignment.razor b/Management.Web/Shared/Module/Assignment/NewAssignment.razor
index 93a2528..2b89d26 100644
--- a/Management.Web/Shared/Module/Assignment/NewAssignment.razor
+++ b/Management.Web/Shared/Module/Assignment/NewAssignment.razor
@@ -4,7 +4,7 @@
@code {
[Parameter, EditorRequired]
- public string ModuleName { get; set; }
+ public string ModuleName { get; set; } = "";
[Parameter]
public EventCallback OnSubmit { get; set; }
diff --git a/Management.Web/Shared/Module/Modules.razor b/Management.Web/Shared/Module/Modules.razor
index edb37a5..a1b4b04 100644
--- a/Management.Web/Shared/Module/Modules.razor
+++ b/Management.Web/Shared/Module/Modules.razor
@@ -7,17 +7,7 @@
@inject BrowserStorageManagement storage
@code {
- private bool showNewModule { get; set; } = false;
-
- protected override async Task OnAfterRenderAsync(bool firstRender)
- {
- if(firstRender)
- {
- await storage.LoadStoredConfig();
- StateHasChanged();
- }
- }
-
+ private bool showNewModule { get; set; } = false;
}
@if (!showNewModule)
@@ -42,13 +32,3 @@ else
}
}
-
-
-
-
-
\ No newline at end of file
diff --git a/Management.Web/Shared/Semester/Day.razor b/Management.Web/Shared/Semester/Day.razor
index cfef739..9c320ef 100644
--- a/Management.Web/Shared/Semester/Day.razor
+++ b/Management.Web/Shared/Semester/Day.razor
@@ -26,9 +26,9 @@
DayOfWeek? weekDay = date?.DayOfWeek;
DayOfWeek notNullDay = weekDay ?? default;
var dayInSemester =
- planner.LocalCourse.DaysOfWeek.Contains(notNullDay)
- && date < planner.LocalCourse.EndDate
- && date > planner.LocalCourse.StartDate;
+ planner.LocalCourse?.DaysOfWeek.Contains(notNullDay) ?? false
+ && date < planner.LocalCourse.EndDate
+ && date > planner.LocalCourse.StartDate;
var totalClasses = dayInSemester ? $"bg-light {baseClasses}" : baseClasses;
@@ -45,7 +45,7 @@
Console.WriteLine("on drag start");
}
- async Task OnDrop()
+ void OnDrop()
{
Console.WriteLine("on drop");
dragging = false;
@@ -58,10 +58,10 @@
dragContainer.AssignmentBeingDragged = null;
}
- async Task OnDragEnter() {
+ void OnDragEnter() {
dragging = true;
}
- async Task OnDragLeave() {
+ void OnDragLeave() {
dragging = false;
}
}
diff --git a/Management.Web/Shared/Semester/MonthDetail.razor b/Management.Web/Shared/Semester/MonthDetail.razor
index e74cd7b..e2e30ed 100644
--- a/Management.Web/Shared/Semester/MonthDetail.razor
+++ b/Management.Web/Shared/Semester/MonthDetail.razor
@@ -19,7 +19,14 @@
@foreach (DayOfWeek day in WeekDaysList)
{
-
@day
+
+ @day
+
}
diff --git a/Management.Web/Utils/StorageManagement.cs b/Management.Web/Utils/StorageManagement.cs
index 87f9c20..c4ff1a0 100644
--- a/Management.Web/Utils/StorageManagement.cs
+++ b/Management.Web/Utils/StorageManagement.cs
@@ -2,9 +2,9 @@ using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage;
public class BrowserStorageManagement
{
- private string moduleStorageKey = "module storage key";
- private string assignmentStorageKey = "assignment storage key";
- private string courseIdKey = "course id storage key";
+ // private string moduleStorageKey = "module storage key";
+ // private string assignmentStorageKey = "assignment storage key";
+ // private string courseIdKey = "course id storage key";
private CoursePlanner planner { get; }
private ProtectedLocalStorage storage { get; }
@@ -21,53 +21,53 @@ public class BrowserStorageManagement
canvas = canvasService;
}
- public async Task LoadStoredConfig()
- {
- // var storedModules = await storage.GetAsync
>(moduleStorageKey);
- // if (storedModules.Success)
- // {
- // planner.Modules =
- // storedModules.Value
- // ?? throw new Exception("stored modules was null, it shouldn't have been");
- // }
- // else
- // {
- // Console.WriteLine("no stored modules");
- // }
+ // public async Task LoadStoredConfig()
+ // {
+ // // var storedModules = await storage.GetAsync>(moduleStorageKey);
+ // // if (storedModules.Success)
+ // // {
+ // // planner.Modules =
+ // // storedModules.Value
+ // // ?? throw new Exception("stored modules was null, it shouldn't have been");
+ // // }
+ // // else
+ // // {
+ // // Console.WriteLine("no stored modules");
+ // // }
- // var storedAssignments = await storage.GetAsync>(assignmentStorageKey);
- // if (storedAssignments.Success)
- // {
- // planner.Modules =
- // storedAssignments.Value
- // ?? throw new Exception("stored assignments are null, it shouldn't have been");
- // }
- // else
- // {
- // Console.WriteLine("no stored assignments");
- // }
+ // // var storedAssignments = await storage.GetAsync>(assignmentStorageKey);
+ // // if (storedAssignments.Success)
+ // // {
+ // // planner.Modules =
+ // // storedAssignments.Value
+ // // ?? throw new Exception("stored assignments are null, it shouldn't have been");
+ // // }
+ // // else
+ // // {
+ // // Console.WriteLine("no stored assignments");
+ // // }
- // var storedCourseId = await storage.GetAsync(courseIdKey);
- // if (storedCourseId.Success)
- // {
- // // var courses =
- // planner.Course = await canvas.GetCourse(storedCourseId.Value);
- // planner.Modules = await canvas.GetModules(planner.Course.Id);
- // }
- // else
- // {
- // Console.WriteLine("no stored assignments");
- // }
- }
+ // // var storedCourseId = await storage.GetAsync(courseIdKey);
+ // // if (storedCourseId.Success)
+ // // {
+ // // // var courses =
+ // // planner.Course = await canvas.GetCourse(storedCourseId.Value);
+ // // planner.Modules = await canvas.GetModules(planner.Course.Id);
+ // // }
+ // // else
+ // // {
+ // // Console.WriteLine("no stored assignments");
+ // // }
+ // }
- public async Task Save()
- {
- // await storage.SetAsync(moduleStorageKey, planner.Modules);
- // await storage.SetAsync(assignmentStorageKey, planner.Assignments);
+ // public async Task Save()
+ // {
+ // // await storage.SetAsync(moduleStorageKey, planner.Modules);
+ // // await storage.SetAsync(assignmentStorageKey, planner.Assignments);
- // if (planner.Course != null)
- // await storage.SetAsync(courseIdKey, planner.Course.Id);
- // else
- // await storage.DeleteAsync(courseIdKey);
- }
+ // // if (planner.Course != null)
+ // // await storage.SetAsync(courseIdKey, planner.Course.Id);
+ // // else
+ // // await storage.DeleteAsync(courseIdKey);
+ // }
}
diff --git a/Management/Features/Configuration/CoursePlanner.cs b/Management/Features/Configuration/CoursePlanner.cs
index c9d0541..0334d9c 100644
--- a/Management/Features/Configuration/CoursePlanner.cs
+++ b/Management/Features/Configuration/CoursePlanner.cs
@@ -5,12 +5,24 @@ using LocalModels;
public class CoursePlanner
{
- public LocalCourse _localCourse { get; set; } = default!;
- public LocalCourse LocalCourse
+ private readonly YamlManager yamlManager;
+
+ public CoursePlanner(YamlManager yamlManager)
+ {
+ this.yamlManager = yamlManager;
+ }
+
+ private LocalCourse? _localCourse { get; set; }
+ public LocalCourse? LocalCourse
{
get => _localCourse;
set
{
+ // ignore initial load of course
+ if (_localCourse != null && value != null)
+ {
+ yamlManager.SaveCourse(value);
+ }
_localCourse = value;
StateHasChanged?.Invoke();
}
diff --git a/Management/Services/CanvasService.cs b/Management/Services/CanvasService.cs
index 09bb77a..e1baf4a 100644
--- a/Management/Services/CanvasService.cs
+++ b/Management/Services/CanvasService.cs
@@ -41,7 +41,7 @@ public class CanvasService : ICanvasService
public async Task GetCourse(ulong courseId)
{
- var url = $"course/{courseId}";
+ var url = $"courses/{courseId}";
var request = new RestRequest(url);
var (data, response) = await webRequestor.GetAsync(request);
@@ -127,7 +127,8 @@ public class CanvasService : ICanvasService
var currentTerms = terms
.Where(t => t.EndAt != null && t.EndAt > queryDate && t.EndAt < queryDate.AddYears(1))
- .Take(3);
+ .Take(3)
+ .OrderBy(t => t.StartAt);
return currentTerms;
}
diff --git a/Management/Services/WebRequestor.cs b/Management/Services/WebRequestor.cs
index b10faa2..f8a3620 100644
--- a/Management/Services/WebRequestor.cs
+++ b/Management/Services/WebRequestor.cs
@@ -58,7 +58,7 @@ public class WebRequestor : IWebRequestor
}
try
{
- var data = JsonSerializer.Deserialize(response.Content);
+ var data = JsonSerializer.Deserialize(response.Content!);
if (data == null)
{
diff --git a/Management/Services/YamlManager.cs b/Management/Services/YamlManager.cs
index e03cc97..7f158e0 100644
--- a/Management/Services/YamlManager.cs
+++ b/Management/Services/YamlManager.cs
@@ -6,30 +6,35 @@ public class YamlManager
{
public string CourseToYaml(LocalCourse course)
{
- var serializer = new SerializerBuilder()
- .Build();
+ var serializer = new SerializerBuilder().Build();
var yaml = serializer.Serialize(course);
- System.Console.WriteLine(yaml);
+ // System.Console.WriteLine(yaml);
return yaml;
}
public LocalCourse ParseCourse(string rawCourse)
{
- var deserializer = new DeserializerBuilder()
- .Build();
+ var deserializer = new DeserializerBuilder().Build();
var person = deserializer.Deserialize(rawCourse);
return person;
}
- public async Task SaveCourse(LocalCourse course)
+ public async Task SaveCourseAsync(LocalCourse course)
{
var courseString = CourseToYaml(course);
await File.WriteAllTextAsync($"../storage/{course.Name}.yml", courseString);
}
+ public void SaveCourse(LocalCourse course)
+ {
+ var courseString = CourseToYaml(course);
+
+ File.WriteAllText($"../storage/{course.Name}.yml", courseString);
+ }
+
public async Task> LoadSavedCourses()
{
string path = "../storage/";