This commit is contained in:
SpecialX
2025-06-27 19:03:10 +08:00
parent 14fbe6397a
commit a21ca80782
57 changed files with 3872 additions and 611 deletions

View File

@@ -17,7 +17,7 @@ namespace TechHelper.Server.Repositories
{
_unitOfWork = unitOfWork;
_assignmentRepo = _unitOfWork.GetRepository<Assignment>();
_assignQuestionRepo = _unitOfWork.GetRepository<AssignmentQuestion>();
_assignQuestionRepo = _unitOfWork.GetRepository<AssignmentQuestion>();
}
public async Task<Assignment?> GetFullExamByIdAsync(Guid assignmentId)
@@ -29,18 +29,18 @@ namespace TechHelper.Server.Repositories
i => i.Include(a => a.ExamStruct)
);
result.ExamStruct = await GetNeed(result.ExamStructId)?? null;
result.ExamStruct = await GetNeed(result.ExamStructId) ?? null;
return result;
}
public async Task<AssignmentQuestion?> GetNeed(Guid id)
public async Task<AssignmentQuestion?> GetNeed(Guid id)
{
var result = await _assignQuestionRepo.GetFirstOrDefaultAsync(
predicate: aq => aq.Id == id,
include: i => i
.Include(aq => aq.ChildrenAssignmentQuestion)
.Include(aq => aq.ChildrenAssignmentQuestion)
.Include(aq => aq.Question)
.ThenInclude(q => q.Lesson)
.Include(aq => aq.Question)
@@ -55,13 +55,13 @@ namespace TechHelper.Server.Repositories
var loadedChildren = new List<AssignmentQuestion>();
foreach (var child in result.ChildrenAssignmentQuestion)
{
var loadedChild = await GetNeed(child.Id);
var loadedChild = await GetNeed(child.Id);
if (loadedChild != null)
{
loadedChildren.Add(loadedChild);
}
}
result.ChildrenAssignmentQuestion = loadedChildren;
result.ChildrenAssignmentQuestion = loadedChildren;
return result;
}
@@ -90,5 +90,18 @@ namespace TechHelper.Server.Repositories
public async Task AddAsync(AssignmentClass assignment)
{
}
public async Task AddAsync(Submission submission)
{
await _unitOfWork.GetRepository<Submission>().InsertAsync(submission);
}
public async Task<IEnumerable<Assignment>> GetAllSubmissionPreviewsByUserAsync(Guid id)
{
var submissions = await _unitOfWork.GetRepository<Submission>().GetAllAsync(predicate: s => s.StudentId == id, include: i => i.Include(s => s.Assignment));
if (submissions == null || !submissions.Any())
return Enumerable.Empty<Assignment>();
return submissions.ToList().Select(s => s.Assignment).Where(a => a != null).Distinct().ToList();
}
}
}

View File

@@ -1,4 +1,5 @@
using Entities.Contracts;
using Entities.DTO;
namespace TechHelper.Server.Repositories
{
@@ -23,6 +24,7 @@ namespace TechHelper.Server.Repositories
/// </summary>
/// <param name="assignment">要添加的试卷实体。</param>
Task AddAsync(Assignment assignment);
Task AddAsync(Submission submission);
@@ -32,6 +34,6 @@ namespace TechHelper.Server.Repositories
Task AddAsync(Question assignment);
Task AddAsync(AssignmentClass assignment);
Task<IEnumerable<Assignment>> GetAllSubmissionPreviewsByUserAsync(Guid id);
}
}