using Entities.DTO;
using TechHelper.Services;
using System.Net.Http.Json;
using Newtonsoft.Json;
namespace TechHelper.Client.Services
{
public class StudentSubmissionService : IStudentSubmissionService
{
private readonly HttpClient _client;
public StudentSubmissionService(HttpClient client)
{
_client = client;
}
///
/// 获取当前学生的所有提交摘要
///
/// 学生提交摘要列表
public async Task GetMySubmissionsAsync()
{
try
{
var response = await _client.GetAsync("student-submission/my-submissions");
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
var submissions = JsonConvert.DeserializeObject>(content);
return ApiResponse.Success(result: submissions);
}
else
{
var errorContent = await response.Content.ReadAsStringAsync();
return ApiResponse.Error(message: $"获取学生提交信息失败: {response.StatusCode} - {errorContent}");
}
}
catch (Exception ex)
{
return ApiResponse.Error(message: $"内部错误: {ex.Message}");
}
}
///
/// 获取当前学生的提交摘要(分页)
///
/// 页码,默认为1
/// 每页数量,默认为10
/// 分页的学生提交摘要列表
public async Task GetMySubmissionsPagedAsync(int pageNumber = 1, int pageSize = 10)
{
try
{
var response = await _client.GetAsync($"student-submission/my-submissions-paged?pageNumber={pageNumber}&pageSize={pageSize}");
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject(content);
return ApiResponse.Success(result: result);
}
else
{
var errorContent = await response.Content.ReadAsStringAsync();
return ApiResponse.Error(message: $"获取学生提交信息失败: {response.StatusCode} - {errorContent}");
}
}
catch (Exception ex)
{
return ApiResponse.Error(message: $"内部错误: {ex.Message}");
}
}
}
}