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}"); } } } }