diff --git a/.csharpierrc.json b/.csharpierrc.json
new file mode 100644
index 0000000..321cc8b
--- /dev/null
+++ b/.csharpierrc.json
@@ -0,0 +1,5 @@
+{
+ "printWidth": 100,
+ "useTabs": false,
+ "tabWidth": 2
+}
\ No newline at end of file
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index aba32f6..c29d353 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,5 +1,6 @@
{
"recommendations": [
- "alexkrechik.cucumberautocomplete"
+ "alexkrechik.cucumberautocomplete",
+ "csharpier.csharpier-vscode"
]
}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 5c9dc78..5bc9f86 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,6 +1,5 @@
{
"cucumberautocomplete.steps": [
"./Management.Gherkin/**/*.cs"
-
]
}
\ No newline at end of file
diff --git a/Management.Test/Features/ConfigurationTests.cs b/Management.Test/Features/ConfigurationTests.cs
index c19ba80..2a78ab9 100644
--- a/Management.Test/Features/ConfigurationTests.cs
+++ b/Management.Test/Features/ConfigurationTests.cs
@@ -14,7 +14,7 @@ public class ConfigurationTests
EndAt: endAt
);
var daysOfWeek = new DayOfWeek[] { DayOfWeek.Monday };
- var management = new ConfigurationManagement();
+ var management = new CoursePlanner();
management.SetConfiguration(canvasTerm, daysOfWeek);
var config = management.SemesterCalendar;
diff --git a/Management.Test/Features/ModuleTests.cs b/Management.Test/Features/ModuleTests.cs
index 6785c80..8991d9e 100644
--- a/Management.Test/Features/ModuleTests.cs
+++ b/Management.Test/Features/ModuleTests.cs
@@ -1,40 +1,40 @@
-public class ModuleTests
-{
- [Test]
- public void CanAddModule()
- {
- var manager = new ModuleManager();
- var module = new CourseModule("First Module", new LocalAssignment[] { });
- manager.AddModule(module);
+// public class ModuleTests
+// {
+// [Test]
+// public void CanAddModule()
+// {
+// var manager = new ModuleManager();
+// var module = new CourseModule("First Module", new LocalAssignment[] { });
+// manager.AddModule(module);
- manager.Modules.Count().Should().Be(1);
- manager.Modules.First().Should().Be(module);
- }
+// manager.Modules.Count().Should().Be(1);
+// manager.Modules.First().Should().Be(module);
+// }
- [Test]
- public void CanAddAssignmentToCorrectModule()
- {
- var manager = new ModuleManager();
- manager.AddModule(new CourseModule("First Module", new LocalAssignment[] { }));
- manager.AddModule(new CourseModule("Second Module", new LocalAssignment[] { }));
- manager.AddModule(new CourseModule("Third Module", new LocalAssignment[] { }));
- manager.AddModule(new CourseModule("Fourth Module", new LocalAssignment[] { }));
+// [Test]
+// public void CanAddAssignmentToCorrectModule()
+// {
+// var manager = new ModuleManager();
+// manager.AddModule(new CourseModule("First Module", new LocalAssignment[] { }));
+// manager.AddModule(new CourseModule("Second Module", new LocalAssignment[] { }));
+// manager.AddModule(new CourseModule("Third Module", new LocalAssignment[] { }));
+// manager.AddModule(new CourseModule("Fourth Module", new LocalAssignment[] { }));
- var assignment = new LocalAssignment
- {
- name = "testname",
- description = "testDescription",
- published = false,
- lock_at_due_date = true,
- rubric = new RubricItem[] { },
- lock_at = null,
- due_at = DateTime.Now,
- points_possible = 10,
- submission_types = new SubmissionType[] { SubmissionType.online_text_entry }
- };
+// var assignment = new LocalAssignment
+// {
+// name = "testname",
+// description = "testDescription",
+// published = false,
+// lock_at_due_date = true,
+// rubric = new RubricItem[] { },
+// lock_at = null,
+// due_at = DateTime.Now,
+// points_possible = 10,
+// submission_types = new SubmissionType[] { SubmissionType.online_text_entry }
+// };
- manager.AddAssignment(3, assignment);
- manager.Modules.Count().Should().Be(4);
- manager.Modules.ElementAt(3).Assignments.Count().Should().Be(1);
- }
-}
\ No newline at end of file
+// manager.AddAssignment(3, assignment);
+// manager.Modules.Count().Should().Be(4);
+// manager.Modules.ElementAt(3).Assignments.Count().Should().Be(1);
+// }
+// }
\ No newline at end of file
diff --git a/Management.Web/Pages/Calendar.razor b/Management.Web/Pages/Calendar.razor
index 9f8e2e9..9d0c47c 100644
--- a/Management.Web/Pages/Calendar.razor
+++ b/Management.Web/Pages/Calendar.razor
@@ -3,7 +3,7 @@
@using Management.Web.Shared.Module
@using Management.Web.Shared.Semester
-@inject IConfigurationManagement configurationManagement
+@inject CoursePlanner configurationManagement
@code
{
diff --git a/Management.Web/Pages/Counter.razor b/Management.Web/Pages/Counter.razor
deleted file mode 100644
index b21f052..0000000
--- a/Management.Web/Pages/Counter.razor
+++ /dev/null
@@ -1,18 +0,0 @@
-@page "/counter"
-
-Counter
-
-
Counter
-
-Current count: @currentCount
-
-
-
-@code {
- private int currentCount = 0;
-
- private void IncrementCount()
- {
- currentCount++;
- }
-}
diff --git a/Management.Web/Pages/Drag.razor b/Management.Web/Pages/Drag.razor
deleted file mode 100644
index 41da2a5..0000000
--- a/Management.Web/Pages/Drag.razor
+++ /dev/null
@@ -1,43 +0,0 @@
-@page "/drag"
-@inject IJSRuntime JSRuntime
-
-@code {
- private string dragClass = "bg-light";
-
- void OnDragStart()
- {
- Console.WriteLine("on drag start");
- }
-
- async Task OnDrop()
- {
- Console.WriteLine("on drop");
- dragClass="bg-light";
- }
-
- async Task OnDragEnter() {
- dragClass="bg-dark";
- }
- async Task OnDragLeave() {
- dragClass="bg-light";
- }
-}
-
-
- Drag me!
-
-
- OnDrop())"
- @ondragenter="OnDragEnter"
- @ondragleave="OnDragLeave"
- ondragover="event.preventDefault();"
- ondragstart="event.dataTransfer.setData('', event.target.id);"
-
- style="width: 100px;height: 100px;"
- class="@dragClass"
- >
- Drop here!
-
diff --git a/Management.Web/Pages/Index.razor b/Management.Web/Pages/Index.razor
index f939ca7..294e915 100644
--- a/Management.Web/Pages/Index.razor
+++ b/Management.Web/Pages/Index.razor
@@ -1,23 +1,42 @@
@page "/"
@using CanvasModel.EnrollmentTerms
@using Management.Web.Shared.Semester
+@using CanvasModel.Courses
@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage
-@inject ICanvasService canvasService
-@inject IConfigurationManagement configurationManagement
+@inject CanvasService canvasService
+@inject CoursePlanner configurationManagement
@inject ProtectedLocalStorage BrowserStorage
-
-
@code
{
private string semesterConfigurationKey = "semesterCalendarConfiguration";
private IEnumerable? terms { get; set; } = null;
- private ulong? selectedTermId { get; set; }
+ private bool loadingCourses = false;
+ private IEnumerable? courses {get; set;} = null;
+
+ private ulong? _selectedTermId { get; set; }
+ private ulong? selectedTermId {
+ get => _selectedTermId;
+ set
+ {
+ _selectedTermId = value;
+ updateCourses();
+ }
+ }
private EnrollmentTermModel? selectedTerm
{
get => terms?.FirstOrDefault(t => t.Id == selectedTermId);
}
+
+ private ulong? selectedCourseId {
+ get => configurationManagement.Course?.Id;
+ set
+ {
+ configurationManagement.Course = courses?.First(c => c.Id == value);
+ }
+ }
+
private List days { get; set; } = new();
private bool saved { get; set; } = false;
@@ -33,16 +52,35 @@
if(firstRender)
{
var storedConfiguration = await BrowserStorage.GetAsync(semesterConfigurationKey);
- if (storedConfiguration.Success) {
+ if (storedConfiguration.Success)
+ {
Console.WriteLine(JsonSerializer.Serialize(storedConfiguration.Value));
configurationManagement.SemesterCalendar = storedConfiguration.Value;
- } else {
+ }
+ else
+ {
Console.WriteLine("no stored configuration");
}
StateHasChanged();
}
}
+ private async Task updateCourses()
+ {
+ if(selectedTermId != null)
+ {
+ loadingCourses = true;
+
+ courses = await canvasService.GetCourses((ulong)selectedTermId);
+ System.Console.WriteLine(courses);
+ System.Console.WriteLine(selectedTermId);
+ loadingCourses = false;
+ }
+ else
+ courses = null;
+
+ StateHasChanged();
+ }
private void readTermFromConfig()
{
if (terms == null || configurationManagement.SemesterCalendar == null) return;
@@ -83,42 +121,59 @@
@if (terms != null)
{
-
}
@if (selectedTerm is not null)
{
-
Select Days Of Week
+
Select Days Of Week
@foreach (DayOfWeek day in (DayOfWeek[])Enum.GetValues(typeof(DayOfWeek)))
- {
-
-
-
- }
+ {
+
+
+
+ }
+ @if(loadingCourses)
+ {
+
+ }
+
+ @if(courses != null)
+ {
+
+
+
+
+
+
+ }
+