diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 0000000..bc04b3c --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-stryker": { + "version": "3.6.0", + "commands": [ + "dotnet-stryker" + ] + }, + "csharpier": { + "version": "0.25.0", + "commands": [ + "dotnet-csharpier" + ] + } + } +} \ No newline at end of file diff --git a/Management.Test/Features/ConfigurationTests.cs b/Management.Test/Features/ConfigurationTests.cs index eed3cc1..c19ba80 100644 --- a/Management.Test/Features/ConfigurationTests.cs +++ b/Management.Test/Features/ConfigurationTests.cs @@ -16,7 +16,7 @@ public class ConfigurationTests var daysOfWeek = new DayOfWeek[] { DayOfWeek.Monday }; var management = new ConfigurationManagement(); management.SetConfiguration(canvasTerm, daysOfWeek); - var config = management.Configuration; + var config = management.SemesterCalendar; if(config == null) Assert.Fail(); config!.StartDate.Should().Be(startAt); diff --git a/Management.Test/Features/SemesterPlannerTests.cs b/Management.Test/Features/SemesterPlannerTests.cs index d36e349..050158a 100644 --- a/Management.Test/Features/SemesterPlannerTests.cs +++ b/Management.Test/Features/SemesterPlannerTests.cs @@ -8,7 +8,7 @@ public class SemesterPlannerTests public void TestCanCreatePlanner() { - var config = new SemesterConfiguration( + var config = new SemesterCalendarConfig( StartDate: new DateTime(2022, 1, 1), EndDate: new DateTime(2022, 1, 2), new DayOfWeek[] { } @@ -22,7 +22,7 @@ public class SemesterPlannerTests [Test] public void TestNewPlannerHasCorrectNumberOfMonths() { - var config = new SemesterConfiguration( + var config = new SemesterCalendarConfig( StartDate: new DateTime(2022, 1, 1), EndDate: new DateTime(2022, 2, 1), new DayOfWeek[] { } @@ -36,7 +36,7 @@ public class SemesterPlannerTests [Test] public void TestNewPlannerHandlesTermsThatWrapYears() { - var config = new SemesterConfiguration( + var config = new SemesterCalendarConfig( StartDate: new DateTime(2022, 12, 1), EndDate: new DateTime(2023, 1, 1), new DayOfWeek[] { } @@ -50,7 +50,7 @@ public class SemesterPlannerTests [Test] public void TestSemesterGetsCorrectMonths() { - var config = new SemesterConfiguration( + var config = new SemesterCalendarConfig( StartDate: new DateTime(2022, 1, 1), EndDate: new DateTime(2022, 2, 1), new DayOfWeek[] { } @@ -66,7 +66,7 @@ public class SemesterPlannerTests [Test] public void TestMonthsCanWrapYears() { - var config = new SemesterConfiguration( + var config = new SemesterCalendarConfig( StartDate: new DateTime(2022, 12, 1), EndDate: new DateTime(2023, 1, 1), new DayOfWeek[] { } @@ -85,7 +85,7 @@ public class SemesterPlannerTests public void TestSemesterTracksDaysOfWeek() { DayOfWeek[] days = new DayOfWeek[] { DayOfWeek.Monday }; - var config = new SemesterConfiguration( + var config = new SemesterCalendarConfig( StartDate: new DateTime(2022, 12, 1), EndDate: new DateTime(2023, 1, 1), days diff --git a/Management.Web/Pages/Calendar.razor b/Management.Web/Pages/Calendar.razor index 0f1dd5d..8eb97a3 100644 --- a/Management.Web/Pages/Calendar.razor +++ b/Management.Web/Pages/Calendar.razor @@ -1,5 +1,6 @@ @page "/calendar" @using CanvasModel.EnrollmentTerms +@using Management.Web.Shared.Module @using Management.Web.Shared.Semester @inject IConfigurationManagement configurationManagement @@ -10,17 +11,26 @@ private SemesterPlanner? semester { get; set; } protected override void OnParametersSet() { - if (configurationManagement.Configuration != null) - semester = new SemesterPlanner(configurationManagement.Configuration); + if (configurationManagement.SemesterCalendar != null) + semester = new SemesterPlanner(configurationManagement.SemesterCalendar); } }
-@if (semester != null) -{ - @foreach (var month in semester.Months) - { - -
- } -} \ No newline at end of file + +
+
+ + @if (semester != null) + { + @foreach (var month in semester.Months) + { + +
+ } + } +
+
+ +
+
\ No newline at end of file diff --git a/Management.Web/Pages/Index.razor b/Management.Web/Pages/Index.razor index 60312a2..f939ca7 100644 --- a/Management.Web/Pages/Index.razor +++ b/Management.Web/Pages/Index.razor @@ -5,10 +5,13 @@ @inject ICanvasService canvasService @inject IConfigurationManagement configurationManagement -@inject ProtectedSessionStorage ProtectedSessionStore +@inject ProtectedLocalStorage BrowserStorage + + @code { + private string semesterConfigurationKey = "semesterCalendarConfiguration"; private IEnumerable? terms { get; set; } = null; private ulong? selectedTermId { get; set; } private EnrollmentTermModel? selectedTerm @@ -25,12 +28,27 @@ readDaysFromConfig(); } + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if(firstRender) + { + var storedConfiguration = await BrowserStorage.GetAsync(semesterConfigurationKey); + if (storedConfiguration.Success) { + Console.WriteLine(JsonSerializer.Serialize(storedConfiguration.Value)); + configurationManagement.SemesterCalendar = storedConfiguration.Value; + } else { + Console.WriteLine("no stored configuration"); + } + StateHasChanged(); + } + } + private void readTermFromConfig() { - if (terms == null || configurationManagement.Configuration == null) return; + if (terms == null || configurationManagement.SemesterCalendar == null) return; foreach (var term in terms) { - var termInConfiguration = configurationManagement.Configuration.StartDate == term.StartAt; + var termInConfiguration = configurationManagement.SemesterCalendar.StartDate == term.StartAt; if (termInConfiguration) { selectedTermId = term.Id; @@ -40,17 +58,24 @@ private void readDaysFromConfig() { - if (terms == null || configurationManagement.Configuration == null) return; + if (terms == null || configurationManagement.SemesterCalendar == null) return; - days = configurationManagement.Configuration.Days.ToList(); + days = configurationManagement.SemesterCalendar.Days.ToList(); } - public async void HandleSave() { saved = true; - configurationManagement.SetConfiguration(selectedTerm, days.ToArray()); - await ProtectedSessionStore.SetAsync("configuration", configurationManagement.Configuration); + configurationManagement.SetConfiguration( + selectedTerm ?? throw new Exception("cannot save configuration without selecting term"), + days.ToArray() + ); + await BrowserStorage.SetAsync( + semesterConfigurationKey, + configurationManagement.SemesterCalendar ?? throw new Exception("Semester Calendar configuration not properly configured") + ); + + Console.WriteLine(JsonSerializer.Serialize(await BrowserStorage.GetAsync(semesterConfigurationKey))); } } Index @@ -61,7 +86,7 @@
- Select Term: +