mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
pass in a config object rather than a term to create a semester
This commit is contained in:
@@ -7,14 +7,14 @@ 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);
|
||||
}
|
||||
@@ -22,14 +22,13 @@ public class SemesterPlannerTests
|
||||
[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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
<MonthDetail Month="month" />
|
||||
<hr />
|
||||
}
|
||||
} *@
|
||||
@@ -3,10 +3,12 @@ using CanvasModel.EnrollmentTerms;
|
||||
public class SemesterPlanner
|
||||
{
|
||||
public IEnumerable<CalendarMonth> 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)
|
||||
|
||||
5
Management/Models/SemesterConfiguration.cs
Normal file
5
Management/Models/SemesterConfiguration.cs
Normal file
@@ -0,0 +1,5 @@
|
||||
public record SemesterConfiguration(
|
||||
DateTime StartDate,
|
||||
DateTime EndDate,
|
||||
IEnumerable<DayOfWeek> Days
|
||||
);
|
||||
Reference in New Issue
Block a user