@using TechHelper.Client.Services
@inject IStudentSubmissionService StudentSubmissionService
@if (_isLoading)
{
}
else if (_studentSubmissions == null || _studentSubmissions.Count == 0)
{
暂无提交记录
}
else
{
@foreach (var submission in _studentSubmissions)
{
}
}
@code {
// 学生提交数据模型
public class StudentSubmission
{
public string StudentName { get; set; }
public int TotalProblems { get; set; }
public int ErrorCount { get; set; }
public DateTime CreatedDate { get; set; }
public float Score { get; set; }
public string AssignmentName { get; set; }
public string Status { get; set; }
public TimeSpan TimeSpent { get; set; }
}
// 学生提交列表
private List _studentSubmissions = new();
private bool _isLoading = true;
protected override async Task OnInitializedAsync()
{
await LoadStudentSubmissions();
}
private async Task LoadStudentSubmissions()
{
try
{
_isLoading = true;
StateHasChanged();
var result = await StudentSubmissionService.GetMySubmissionsAsync();
if (result.Status && result.Result != null)
{
// 从服务器获取的数据映射到我们的模型
var submissions = result.Result as List;
if (submissions != null)
{
_studentSubmissions = submissions.Select(submission => new StudentSubmission
{
AssignmentName = submission.AssignmentName,
CreatedDate = submission.CreatedDate,
ErrorCount = submission.ErrorCount,
Score = submission.Score,
StudentName = submission.StudentName,
Status = submission.Status,
TotalProblems = submission.TotalQuestions,
TimeSpent = TimeSpan.FromMinutes(30) // 默认值,实际应用中可以从服务器获取
}).ToList();
}
}
else
{
// 如果API调用失败,使用空列表
_studentSubmissions = new List();
}
}
catch (Exception ex)
{
// 处理异常,可以记录日志
_studentSubmissions = new List();
}
finally
{
_isLoading = false;
StateHasChanged();
}
}
}