This commit is contained in:
SpecialX
2025-07-01 19:05:07 +08:00
parent a21ca80782
commit 017cc2169c
33 changed files with 3778 additions and 109 deletions

View File

@@ -54,7 +54,7 @@ namespace Entities.Contracts
public bool IsDeleted { get; set; } = false;
// Navigation Properties
[ForeignKey(nameof(CreatorId))]
public User Creator { get; set; }
public ICollection<AssignmentClass> AssignmentClasses { get; set; }
@@ -73,4 +73,44 @@ namespace Entities.Contracts
AssignmentAttachments = new HashSet<AssignmentAttachment>();
}
}
public static class AssignmentExt
{
public static Submission ConvertToSubmission(this Assignment assignment, Guid studentId, Guid GraderId)
{
if (assignment == null) return new Submission();
var submission = new Submission();
submission.StudentId = studentId;
submission.SubmissionTime = DateTime.Now;
submission.Status = SubmissionStatus.Pending;
submission.GraderId = GraderId;
submission.AssignmentId = assignment.Id;
ConvertExamSturctToSubmissionDetails(assignment.ExamStruct, studentId, submission.SubmissionDetails);
return submission;
}
public static void ConvertExamSturctToSubmissionDetails(AssignmentQuestion examStruct, Guid studentId, ICollection<SubmissionDetail> submissions)
{
if (examStruct == null) return;
submissions.Add(new SubmissionDetail
{
StudentId = studentId,
AssignmentQuestionId = examStruct.Id,
IsCorrect = true,
CreatedAt = DateTime.Now,
UpdatedAt = DateTime.Now,
Status = SubmissionStatus.Pending,
});
examStruct.ChildrenAssignmentQuestion?.ToList().ForEach(s =>
{
ConvertExamSturctToSubmissionDetails(s, studentId, submissions);
});
}
}
}