重构项目结构,移除Assignment相关功能,优化Submission模块
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s

This commit is contained in:
SpecialX
2025-10-09 18:57:28 +08:00
parent 403b34a098
commit ac900159ba
289 changed files with 11948 additions and 20150 deletions

View File

@@ -59,9 +59,9 @@ else if (_questionsForTable.Any() && _students.Any())
@student.DisplayName: <MudText Typo="Typo.h5" Color="Color.Primary" Class="d-inline-block ml-2">@GetStudentTotalScore(student.Id)</MudText>
</MudText>
}
<MudButton Variant="Variant.Filled" Color="Color.Success" Class="mt-4" @onclick="SubmitGrading">
@* <MudButton Variant="Variant.Filled" Color="Color.Success" Class="mt-4" @onclick="SubmitGrading">
提交批改结果 (模拟)
</MudButton>
</MudButton> *@
</MudPaper>
}
@@ -86,10 +86,10 @@ else
private NavigationManager Navigation { get; set; }
private MudTable<QuestionRowData> _table = new();
private AssignmentDto Assignment { get; set; } = new AssignmentDto();
private ExamDto Assignment { get; set; } = new ExamDto();
private AssignmentCheckData _examStruct = new AssignmentCheckData();
private List<StudentDto> _students = new List<StudentDto>();
private List<UserListDto> _students = new List<UserListDto>();
private List<QuestionRowData> _questionsForTable = new List<QuestionRowData>();
private bool _isLoading = true;
@@ -99,14 +99,14 @@ else
protected override async Task OnInitializedAsync()
{
_isLoading = true;
await LoadExamData();
// _isLoading = true;
// await LoadExamData();
var result = await ClassServices.GetClassStudents();
if (!result.Status) Snackbar.Add($"获取学生失败, {result.Message}", Severity.Error);
_students = result.Result as List<StudentDto> ?? new List<StudentDto>();
BuildTable();
_isLoading = false;
// var result = await ClassServices.GetClassStudents();
// if (!result.Status) Snackbar.Add($"获取学生失败, {result.Message}", Severity.Error);
// _students = result.Result as List<StudentDto> ?? new List<StudentDto>();
// BuildTable();
// _isLoading = false;
}
private void BuildTable()
@@ -135,7 +135,7 @@ else
var result = await ExamService.GetExam(parsedExamId);
if (result.Status)
{
Assignment = result.Result as AssignmentDto ?? new AssignmentDto();
Assignment = result.Result as ExamDto ?? new ExamDto();
_examStruct = Assignment.GetStruct();
}
else
@@ -188,52 +188,52 @@ else
StateHasChanged();
}
private void SubmitGrading()
{
// private void SubmitGrading()
// {
List<SubmissionDto> submissionDto = new List<SubmissionDto>();
// List<SubmissionDto> submissionDto = new List<SubmissionDto>();
foreach (var student in _students)
{
var newSubmission = new SubmissionDto();
newSubmission.StudentId = student.Id;
newSubmission.AssignmentId = Assignment.Id;
newSubmission.SubmissionTime = DateTime.Now;
newSubmission.Status = Entities.Contracts.SubmissionStatus.Graded;
// foreach (var student in _students)
// {
// var newSubmission = new SubmissionDto();
// newSubmission.StudentId = student.Id;
// newSubmission.AssignmentId = Assignment.Id;
// newSubmission.SubmissionTime = DateTime.Now;
// newSubmission.Status = Entities.Contracts.SubmissionStatus.Graded;
foreach (var row in _questionsForTable)
{
if (row.QuestionItem.AssignmentQuestionDto.StructType == Entities.Contracts.AssignmentStructType.Struct) continue;
if (row.StudentAnswers.TryGetValue(student.Id, out bool isCorrect))
{
newSubmission.SubmissionDetails.Add(new SubmissionDetailDto
{
IsCorrect = isCorrect,
StudentId = student.Id,
AssignmentQuestionId = row.QuestionItem.AssignmentQuestionDto.Id,
PointsAwarded = isCorrect ? row.QuestionItem.AssignmentQuestionDto.Score : 0
});
// foreach (var row in _questionsForTable)
// {
// if (row.QuestionItem.AssignmentQuestionDto.StructType == Entities.Contracts.AssignmentStructType.Struct) continue;
// if (row.StudentAnswers.TryGetValue(student.Id, out bool isCorrect))
// {
// newSubmission.SubmissionDetails.Add(new SubmissionDetailDto
// {
// IsCorrect = isCorrect,
// StudentId = student.Id,
// AssignmentQuestionId = row.QuestionItem.AssignmentQuestionDto.Id,
// PointsAwarded = isCorrect ? row.QuestionItem.AssignmentQuestionDto.Score : 0
// });
newSubmission.OverallGrade += isCorrect ? row.QuestionItem.AssignmentQuestionDto.Score : 0;
}
}
submissionDto.Add(newSubmission);
}
// newSubmission.OverallGrade += isCorrect ? row.QuestionItem.AssignmentQuestionDto.Score : 0;
// }
// }
// submissionDto.Add(newSubmission);
// }
submissionDto.ForEach(async s =>
{
Snackbar?.Add($"正在提交: {_students.FirstOrDefault(std => std.Id == s.StudentId)?.DisplayName} 的试卷", Severity.Info);
var submidResult = await ExamService.SubmissionAssignment(s);
if (submidResult.Status)
Snackbar?.Add($"批改结果已提交 {_students.FirstOrDefault(st => st.Id == s.StudentId)?.DisplayName}", Severity.Success);
else
Snackbar?.Add("批改结果提交失败", Severity.Error);
// submissionDto.ForEach(async s =>
// {
// Snackbar?.Add($"正在提交: {_students.FirstOrDefault(std => std.Id == s.StudentId)?.DisplayName} 的试卷", Severity.Info);
// var submidResult = await ExamService.SubmissionAssignment(s);
// if (submidResult.Status)
// Snackbar?.Add($"批改结果已提交 {_students.FirstOrDefault(st => st.Id == s.StudentId)?.DisplayName}", Severity.Success);
// else
// Snackbar?.Add("批改结果提交失败", Severity.Error);
});
// });
}
// }
}