mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
started creating module ui, workign on assignments
This commit is contained in:
6
Management/Features/Modules/IModuleManager.cs
Normal file
6
Management/Features/Modules/IModuleManager.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
public interface IModuleManager
|
||||
{
|
||||
IEnumerable<CourseModule> Modules { get; }
|
||||
public void AddModule(CourseModule newModule);
|
||||
public void AddAssignment(int moduleIndex, LocalAssignment assignment);
|
||||
}
|
||||
22
Management/Features/Modules/ModuleManager.cs
Normal file
22
Management/Features/Modules/ModuleManager.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
public class ModuleManager : IModuleManager
|
||||
{
|
||||
public IEnumerable<CourseModule> Modules { get; internal set; } = new CourseModule[] { };
|
||||
|
||||
public void AddAssignment(int moduleIndex, LocalAssignment assignment)
|
||||
{
|
||||
var newAssignments = Modules.ElementAt(moduleIndex).Assignments.Append(assignment);
|
||||
var newModule = Modules.ElementAt(moduleIndex) with { Assignments = newAssignments };
|
||||
if (newModule == null)
|
||||
throw new Exception($"cannot get module at index {moduleIndex}");
|
||||
|
||||
Modules = Modules
|
||||
.Take(moduleIndex)
|
||||
.Append(newModule)
|
||||
.Concat(Modules.Skip(moduleIndex + 1));
|
||||
}
|
||||
|
||||
public void AddModule(CourseModule newModule)
|
||||
{
|
||||
Modules = Modules.Append(newModule);
|
||||
}
|
||||
}
|
||||
11
Management/Models/CourseModule.cs
Normal file
11
Management/Models/CourseModule.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
public record CourseModule(
|
||||
[property: Required]
|
||||
[property: StringLength(50, ErrorMessage = "Name too long (50 character limit).")]
|
||||
string Name,
|
||||
IEnumerable<LocalAssignment>? Assignments
|
||||
)
|
||||
{
|
||||
public IEnumerable<LocalAssignment> Assignments = Assignments ?? new LocalAssignment[] { };
|
||||
}
|
||||
31
Management/Models/LocalAssignment.cs
Normal file
31
Management/Models/LocalAssignment.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
public record RubricItem(
|
||||
int Points,
|
||||
string Label
|
||||
);
|
||||
|
||||
public enum SubmissionType
|
||||
{
|
||||
online_quiz,
|
||||
none,
|
||||
on_paper,
|
||||
discussion_topic,
|
||||
external_tool,
|
||||
online_upload,
|
||||
online_text_entry,
|
||||
online_url,
|
||||
media_recording,
|
||||
student_annotation,
|
||||
}
|
||||
|
||||
public record LocalAssignment
|
||||
{
|
||||
public string name { get; init; } = "";
|
||||
public string description { get; init; } = "";
|
||||
public bool published { get; init; }
|
||||
public bool lock_at_due_date { get; init; }
|
||||
public IEnumerable<RubricItem> rubric { get; init; } = new RubricItem[] { };
|
||||
public DateTime? lock_at { get; init; }
|
||||
public DateTime due_at { get; init; }
|
||||
public int points_possible { get; init; }
|
||||
public IEnumerable<SubmissionType> submission_types { get; init; } = new SubmissionType[] { };
|
||||
}
|
||||
Reference in New Issue
Block a user