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]
|
[Test]
|
||||||
public void TestCanCreatePlanner()
|
public void TestCanCreatePlanner()
|
||||||
{
|
{
|
||||||
var canvasTerm = new EnrollmentTermModel(
|
|
||||||
Id: 1,
|
var config = new SemesterConfiguration(
|
||||||
Name: "one",
|
StartDate: new DateTime(2022, 1, 1),
|
||||||
StartAt: new DateTime(2022, 1, 1),
|
EndDate: new DateTime(2022, 1, 2),
|
||||||
EndAt: new DateTime(2022, 1, 2)
|
new DayOfWeek[] { }
|
||||||
);
|
);
|
||||||
|
|
||||||
var semester = new SemesterPlanner(canvasTerm);
|
var semester = new SemesterPlanner(config);
|
||||||
|
|
||||||
semester.Months.Count().Should().Be(1);
|
semester.Months.Count().Should().Be(1);
|
||||||
}
|
}
|
||||||
@@ -22,14 +22,13 @@ public class SemesterPlannerTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNewPlannerHasCorrectNumberOfMonths()
|
public void TestNewPlannerHasCorrectNumberOfMonths()
|
||||||
{
|
{
|
||||||
var canvasTerm = new EnrollmentTermModel(
|
var config = new SemesterConfiguration(
|
||||||
Id: 1,
|
StartDate: new DateTime(2022, 1, 1),
|
||||||
Name: "one",
|
EndDate: new DateTime(2022, 2, 1),
|
||||||
StartAt: new DateTime(2022, 1, 1),
|
new DayOfWeek[] { }
|
||||||
EndAt: new DateTime(2022, 2, 1)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
var semester = new SemesterPlanner(canvasTerm);
|
var semester = new SemesterPlanner(config);
|
||||||
|
|
||||||
semester.Months.Count().Should().Be(2);
|
semester.Months.Count().Should().Be(2);
|
||||||
}
|
}
|
||||||
@@ -37,14 +36,13 @@ public class SemesterPlannerTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNewPlannerHandlesTermsThatWrapYears()
|
public void TestNewPlannerHandlesTermsThatWrapYears()
|
||||||
{
|
{
|
||||||
var canvasTerm = new EnrollmentTermModel(
|
var config = new SemesterConfiguration(
|
||||||
Id: 1,
|
StartDate: new DateTime(2022, 12, 1),
|
||||||
Name: "one",
|
EndDate: new DateTime(2023, 1, 1),
|
||||||
StartAt: new DateTime(2022, 12, 1),
|
new DayOfWeek[] { }
|
||||||
EndAt: new DateTime(2023, 1, 1)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
var semester = new SemesterPlanner(canvasTerm);
|
var semester = new SemesterPlanner(config);
|
||||||
|
|
||||||
semester.Months.Count().Should().Be(2);
|
semester.Months.Count().Should().Be(2);
|
||||||
}
|
}
|
||||||
@@ -52,14 +50,13 @@ public class SemesterPlannerTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSemesterGetsCorrectMonths()
|
public void TestSemesterGetsCorrectMonths()
|
||||||
{
|
{
|
||||||
var canvasTerm = new EnrollmentTermModel(
|
var config = new SemesterConfiguration(
|
||||||
Id: 1,
|
StartDate: new DateTime(2022, 1, 1),
|
||||||
Name: "one",
|
EndDate: new DateTime(2022, 2, 1),
|
||||||
StartAt: new DateTime(2022, 1, 1),
|
new DayOfWeek[] { }
|
||||||
EndAt: new DateTime(2022, 2, 1)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
var semester = new SemesterPlanner(canvasTerm);
|
var semester = new SemesterPlanner(config);
|
||||||
|
|
||||||
semester.Months.First().Month.Should().Be(1);
|
semester.Months.First().Month.Should().Be(1);
|
||||||
semester.Months.Last().Month.Should().Be(2);
|
semester.Months.Last().Month.Should().Be(2);
|
||||||
@@ -69,14 +66,13 @@ public class SemesterPlannerTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestMonthsCanWrapYears()
|
public void TestMonthsCanWrapYears()
|
||||||
{
|
{
|
||||||
var canvasTerm = new EnrollmentTermModel(
|
var config = new SemesterConfiguration(
|
||||||
Id: 1,
|
StartDate: new DateTime(2022, 12, 1),
|
||||||
Name: "one",
|
EndDate: new DateTime(2023, 1, 1),
|
||||||
StartAt: new DateTime(2022, 12, 1),
|
new DayOfWeek[] { }
|
||||||
EndAt: new DateTime(2023, 1, 1)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
var semester = new SemesterPlanner(canvasTerm);
|
var semester = new SemesterPlanner(config);
|
||||||
|
|
||||||
semester.Months.First().Month.Should().Be(12);
|
semester.Months.First().Month.Should().Be(12);
|
||||||
semester.Months.First().Year.Should().Be(2022);
|
semester.Months.First().Year.Should().Be(2022);
|
||||||
|
|||||||
@@ -6,18 +6,18 @@
|
|||||||
[Parameter, EditorRequired]
|
[Parameter, EditorRequired]
|
||||||
public EnrollmentTermModel Term { get; set; } = default!;
|
public EnrollmentTermModel Term { get; set; } = default!;
|
||||||
|
|
||||||
private SemesterPlanner semester { get; set; } = default!;
|
@* private SemesterPlanner semester { get; set; } = default!;
|
||||||
protected override void OnParametersSet()
|
protected override void OnParametersSet()
|
||||||
{
|
{
|
||||||
semester = new SemesterPlanner(Term);
|
semester = new SemesterPlanner(Term);
|
||||||
}
|
} *@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Term.Name
|
@Term.Name
|
||||||
|
|
||||||
@foreach (var month in semester.Months)
|
@* @foreach (var month in semester.Months)
|
||||||
{
|
{
|
||||||
<MonthDetail Month="month" />
|
<MonthDetail Month="month" />
|
||||||
<hr />
|
<hr />
|
||||||
}
|
} *@
|
||||||
@@ -3,10 +3,12 @@ using CanvasModel.EnrollmentTerms;
|
|||||||
public class SemesterPlanner
|
public class SemesterPlanner
|
||||||
{
|
{
|
||||||
public IEnumerable<CalendarMonth> Months { get; }
|
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 start = configuration.StartAt ?? throw new Exception($"Canvas Term must have a start date. Term: {configuration.Id}");
|
||||||
var end = canvasTerm.EndAt ?? throw new Exception($"Canvas Term must have a end date. Term: {canvasTerm.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 =
|
var monthsInTerm =
|
||||||
1 + ((end.Year - start.Year) * 12)
|
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