@using Management.Web.Shared.Components @inject CanvasService canvas @inject CoursePlanner planner @code { private Modal modal { get; set; } = default!; protected override void OnInitialized() { planner.StateHasChanged += reload; } private void reload() { this.InvokeAsync(this.StateHasChanged); } public void Dispose() { planner.StateHasChanged -= reload; } private IEnumerable? terms { get; set; } = null; private ulong? _selectedTermId {get; set;} private ulong? selectedTermId { get => _selectedTermId; set { _selectedTermId = value; if(selectedTerm != null && planner.LocalCourse != null) { planner.LocalCourse = planner.LocalCourse with { StartDate=selectedTerm.StartAt ?? new DateTime(), EndDate=selectedTerm.EndAt ?? new DateTime(), }; } } } private EnrollmentTermModel? selectedTerm { get => terms?.FirstOrDefault(t => t.Id == selectedTermId); } private bool loading = false; protected override async Task OnInitializedAsync() { if(planner.LocalCourse != null && planner.LocalCourse.CanvasId != null) { loading = true; ulong id = planner.LocalCourse?.CanvasId ?? throw new Exception("wtf how did i get here"); var canvasCourse = await canvas.GetCourse(id); terms = await canvas.GetCurrentTermsFor(canvasCourse.StartAt); loading = false; } } } <h1>Course Settings</h1>
Select Days Of Week
@foreach (DayOfWeek day in (DayOfWeek[])Enum.GetValues(typeof(DayOfWeek))) {
}
@if(loading) { } @if (terms != null) {
} @if(planner.LocalCourse != null) {
Default Assignment Due Time
}