diff --git a/Management.Test/Features/SemesterPlannerTests.cs b/Management.Test/Features/SemesterPlannerTests.cs index a20c51b..ebd2e6f 100644 --- a/Management.Test/Features/SemesterPlannerTests.cs +++ b/Management.Test/Features/SemesterPlannerTests.cs @@ -7,29 +7,28 @@ public class SemesterPlannerTests [Test] public void TestCanCreatePlanner() { - var canvasTerm = new EnrollmentTermModel( - Id: 1, - Name: "one", - StartAt: new DateTime(2022, 1, 1), - EndAt: new DateTime(2022, 1, 2) + + var config = new SemesterConfiguration( + StartDate: new DateTime(2022, 1, 1), + EndDate: new DateTime(2022, 1, 2), + new DayOfWeek[] { } ); - var semester = new SemesterPlanner(canvasTerm); + var semester = new SemesterPlanner(config); semester.Months.Count().Should().Be(1); } - + [Test] public void TestNewPlannerHasCorrectNumberOfMonths() { - var canvasTerm = new EnrollmentTermModel( - Id: 1, - Name: "one", - StartAt: new DateTime(2022, 1, 1), - EndAt: new DateTime(2022, 2, 1) + var config = new SemesterConfiguration( + StartDate: new DateTime(2022, 1, 1), + EndDate: new DateTime(2022, 2, 1), + new DayOfWeek[] { } ); - var semester = new SemesterPlanner(canvasTerm); + var semester = new SemesterPlanner(config); semester.Months.Count().Should().Be(2); } @@ -37,14 +36,13 @@ public class SemesterPlannerTests [Test] public void TestNewPlannerHandlesTermsThatWrapYears() { - var canvasTerm = new EnrollmentTermModel( - Id: 1, - Name: "one", - StartAt: new DateTime(2022, 12, 1), - EndAt: new DateTime(2023, 1, 1) + var config = new SemesterConfiguration( + StartDate: new DateTime(2022, 12, 1), + EndDate: new DateTime(2023, 1, 1), + new DayOfWeek[] { } ); - var semester = new SemesterPlanner(canvasTerm); + var semester = new SemesterPlanner(config); semester.Months.Count().Should().Be(2); } @@ -52,14 +50,13 @@ public class SemesterPlannerTests [Test] public void TestSemesterGetsCorrectMonths() { - var canvasTerm = new EnrollmentTermModel( - Id: 1, - Name: "one", - StartAt: new DateTime(2022, 1, 1), - EndAt: new DateTime(2022, 2, 1) + var config = new SemesterConfiguration( + StartDate: new DateTime(2022, 1, 1), + EndDate: new DateTime(2022, 2, 1), + new DayOfWeek[] { } ); - var semester = new SemesterPlanner(canvasTerm); + var semester = new SemesterPlanner(config); semester.Months.First().Month.Should().Be(1); semester.Months.Last().Month.Should().Be(2); @@ -69,14 +66,13 @@ public class SemesterPlannerTests [Test] public void TestMonthsCanWrapYears() { - var canvasTerm = new EnrollmentTermModel( - Id: 1, - Name: "one", - StartAt: new DateTime(2022, 12, 1), - EndAt: new DateTime(2023, 1, 1) + var config = new SemesterConfiguration( + StartDate: new DateTime(2022, 12, 1), + EndDate: new DateTime(2023, 1, 1), + new DayOfWeek[] { } ); - var semester = new SemesterPlanner(canvasTerm); + var semester = new SemesterPlanner(config); semester.Months.First().Month.Should().Be(12); semester.Months.First().Year.Should().Be(2022); diff --git a/Management.Web/Shared/Semester/SemesterDetail.razor b/Management.Web/Shared/Semester/SemesterDetail.razor index 611bf6e..2b9dd0c 100644 --- a/Management.Web/Shared/Semester/SemesterDetail.razor +++ b/Management.Web/Shared/Semester/SemesterDetail.razor @@ -6,18 +6,18 @@ [Parameter, EditorRequired] public EnrollmentTermModel Term { get; set; } = default!; - private SemesterPlanner semester { get; set; } = default!; + @* private SemesterPlanner semester { get; set; } = default!; protected override void OnParametersSet() { semester = new SemesterPlanner(Term); - } + } *@ } @Term.Name -@foreach (var month in semester.Months) +@* @foreach (var month in semester.Months) {
-} \ No newline at end of file +} *@ \ No newline at end of file diff --git a/Management/Features/Calendar/SemesterPlanner.cs b/Management/Features/Calendar/SemesterPlanner.cs index 60a4755..b390094 100644 --- a/Management/Features/Calendar/SemesterPlanner.cs +++ b/Management/Features/Calendar/SemesterPlanner.cs @@ -3,10 +3,12 @@ using CanvasModel.EnrollmentTerms; public class SemesterPlanner { public IEnumerable Months { get; } - public SemesterPlanner(EnrollmentTermModel canvasTerm) + public SemesterPlanner(SemesterConfiguration configuration) { - var start = canvasTerm.StartAt ?? throw new Exception($"Canvas Term must have a start date. Term: {canvasTerm.Id}"); - var end = canvasTerm.EndAt ?? throw new Exception($"Canvas Term must have a end date. Term: {canvasTerm.Id}"); + // var start = configuration.StartAt ?? throw new Exception($"Canvas Term must have a start date. Term: {configuration.Id}"); + // var end = configuration.EndAt ?? throw new Exception($"Canvas Term must have a end date. Term: {configuration.Id}"); + var start = configuration.StartDate; + var end = configuration.EndDate; var monthsInTerm = 1 + ((end.Year - start.Year) * 12) diff --git a/Management/Models/SemesterConfiguration.cs b/Management/Models/SemesterConfiguration.cs new file mode 100644 index 0000000..32242cd --- /dev/null +++ b/Management/Models/SemesterConfiguration.cs @@ -0,0 +1,5 @@ +public record SemesterConfiguration( + DateTime StartDate, + DateTime EndDate, + IEnumerable Days +); \ No newline at end of file