@using CanvasModel.EnrollmentTerms @using Management.Web.Shared.Semester @using CanvasModel.Courses @using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage @using LocalModels @inject CanvasService canvas @inject YamlManager yamlManager @code { private bool loadingCourses = false; public IEnumerable localCourses { get; set; } private IEnumerable? terms { get; set; } = null; private IEnumerable? courses { get; set;} = null; private ulong? _selectedTermId { get; set; } private ulong? selectedTermId { get => _selectedTermId; set { _selectedTermId = value; updateCourses(); } } private EnrollmentTermModel? selectedTerm { get => terms?.FirstOrDefault(t => t.Id == selectedTermId); } private ulong? _selectedCourseId { get; set; } private ulong? selectedCourseId { get => _selectedCourseId; set { _selectedCourseId = value; } } private CourseModel? selectedCourse { get => courses?.First(c => c.Id == selectedCourseId); } private List days { get; set; } = new(); protected override async Task OnInitializedAsync() { terms = await canvas.GetCurrentTermsFor(); } private async Task YamlTrigger() { if(selectedCourse != null) { var course = new LocalCourse { Modules= new LocalModule[] {}, Name = selectedCourse.Name, CanvasId = selectedCourse.Id, DaysOfWeek = days, }; await yamlManager.SaveCourse(course); } await updateCourses(); } private async Task updateCourses() { if(selectedTermId != null) { loadingCourses = true; localCourses = await yamlManager.LoadSavedCourses(); var storedCourseIds = localCourses.Select(c => c.CanvasId); var allCourses = await canvas.GetCourses((ulong)selectedTermId); courses = allCourses.Where(c => !storedCourseIds.Contains(c.Id)); loadingCourses = false; } else courses = null; StateHasChanged(); } } @if (terms != null) {
} @if (selectedTerm is not null) { @if(loadingCourses) { } @if(courses != null) {
}
Select Days Of Week
@foreach (DayOfWeek day in (DayOfWeek[])Enum.GetValues(typeof(DayOfWeek))) {
}
}