mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
can select course from existing file
This commit is contained in:
@@ -2,28 +2,20 @@ using CanvasModel.EnrollmentTerms;
|
||||
|
||||
public class SemesterPlanner
|
||||
{
|
||||
public DateTime FirstDay { get; }
|
||||
public DateTime LastDay { get; }
|
||||
|
||||
public IEnumerable<CalendarMonth> Months { get; }
|
||||
public IEnumerable<DayOfWeek> Days { get; }
|
||||
public SemesterPlanner(SemesterCalendarConfig configuration)
|
||||
public static IEnumerable<CalendarMonth> GetMonthsBetweenDates(
|
||||
DateTime startDate,
|
||||
DateTime endDate
|
||||
)
|
||||
{
|
||||
FirstDay = configuration.StartDate;
|
||||
LastDay = configuration.EndDate;
|
||||
var monthsInTerm = 1 + ((endDate.Year - startDate.Year) * 12) + endDate.Month - startDate.Month;
|
||||
|
||||
var monthsInTerm =
|
||||
1 + ((LastDay.Year - FirstDay.Year) * 12)
|
||||
+ LastDay.Month - FirstDay.Month;
|
||||
|
||||
Months = Enumerable
|
||||
return Enumerable
|
||||
.Range(0, monthsInTerm)
|
||||
.Select(monthDiff =>
|
||||
{
|
||||
var month = ((FirstDay.Month + monthDiff - 1) % 12) + 1;
|
||||
var year = FirstDay.Year + ((FirstDay.Month + monthDiff - 1) / 12);
|
||||
var month = ((startDate.Month + monthDiff - 1) % 12) + 1;
|
||||
var year = startDate.Year + ((startDate.Month + monthDiff - 1) / 12);
|
||||
return new CalendarMonth(year, month);
|
||||
});
|
||||
Days = configuration.Days;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
using CanvasModel.EnrollmentTerms;
|
||||
using CanvasModel.Courses;
|
||||
using CanvasModel;
|
||||
using LocalModels;
|
||||
|
||||
public class CoursePlanner
|
||||
{
|
||||
public void SetConfiguration(EnrollmentTermModel canvasTerm, DayOfWeek[] daysOfWeek)
|
||||
public LocalCourse _localCourse { get; set; } = default!;
|
||||
public LocalCourse LocalCourse
|
||||
{
|
||||
var start =
|
||||
canvasTerm.StartAt
|
||||
?? throw new Exception($"Canvas Term must have a start date. Term: {canvasTerm.Name}");
|
||||
var end =
|
||||
canvasTerm.EndAt
|
||||
?? throw new Exception($"Canvas Term must have a end date. Term: {canvasTerm.Name}");
|
||||
|
||||
SemesterCalendar = new SemesterCalendarConfig(StartDate: start, EndDate: end, Days: daysOfWeek);
|
||||
get => _localCourse;
|
||||
set
|
||||
{
|
||||
_localCourse = value;
|
||||
StateHasChanged?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
public SemesterCalendarConfig? SemesterCalendar { get; set; } = null;
|
||||
|
||||
public IEnumerable<CourseModule> Modules { get; set; } = new CourseModule[] { };
|
||||
public IEnumerable<LocalAssignment> Assignments { get; set; } = new LocalAssignment[] { };
|
||||
public CourseModel? Course { get; set; } = null;
|
||||
public event Action? StateHasChanged;
|
||||
}
|
||||
|
||||
@@ -6,4 +6,6 @@ public record LocalCourse
|
||||
public string Name { get; init; } = string.Empty;
|
||||
public IEnumerable<DayOfWeek> DaysOfWeek { get; init; } = Enumerable.Empty<DayOfWeek>();
|
||||
public ulong? CanvasId { get; init; }
|
||||
public DateTime StartDate { get; init; }
|
||||
public DateTime EndDate { get; init; }
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
public record SemesterCalendarConfig(
|
||||
DateTime StartDate,
|
||||
DateTime EndDate,
|
||||
IEnumerable<DayOfWeek> Days
|
||||
);
|
||||
Reference in New Issue
Block a user