Files
TechHelper/TechHelper.Client/Services/ClasssServices.cs
SpecialX 0d19ec6bb6
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 6s
更新班级和学生相关功能
2025-09-12 11:31:50 +08:00

113 lines
3.3 KiB
C#

using Entities.Contracts;
using Entities.DTO;
using Newtonsoft.Json;
using System.Net.Http.Json;
using TechHelper.Client.HttpRepository;
using TechHelper.Services;
namespace TechHelper.Client.Services
{
public class ClasssServices : IClassServices
{
private readonly HttpClient _client;
private readonly IAuthenticationClientService _authenticationClientService;
public ClasssServices(HttpClient client, IAuthenticationClientService authenticationClientService)
{
_client = client;
_authenticationClientService = authenticationClientService;
}
public Task<ResponseDto> CreateClass(UserRegistrationToClassDto userClass)
{
try
{
return Task.FromResult(new ResponseDto { IsSuccessfulRegistration = true });
}
catch (Exception ex)
{
// 实际应用中,这里应该加入日志记录
Console.WriteLine($"Error in CreateClass: {ex.Message}");
return Task.FromResult(new ResponseDto { IsSuccessfulRegistration = false, Errors = new string[] { ex.Message } });
}
}
public async Task<ApiResponse> GetClassStudents()
{
try
{
var result = await _client.PostAsJsonAsync("class/getClassStudents","");
var content = await result.Content.ReadAsStringAsync();
var users = JsonConvert.DeserializeObject<List<StudentDto>>(content);
return ApiResponse.Success(result: users);
}
catch(Exception ex)
{
return ApiResponse.Error($"获取失败,{ex.Message}, InnerException: {ex.InnerException}");
}
}
public async Task<ApiResponse> GetGradeClasses(byte grade)
{
try
{
var result = await _client.PostAsJsonAsync("class/GetGradeClasses", grade);
var content = await result.Content.ReadAsStringAsync();
Console.WriteLine($"服务器返回的原始内容是: {content}");
var users = JsonConvert.DeserializeObject<List<byte>>(content);
return ApiResponse.Success(result: users);
}
catch (Exception ex)
{
return ApiResponse.Error($"获取失败,{ex.Message}, InnerException: {ex.InnerException}");
}
}
public StudentDto GetStudents(byte Class)
{
try
{
var result = _client.PostAsJsonAsync("class/getClassStudents", Class);
var content = result.Result.Content.ReadAsStringAsync();
if (content.Result != null)
{
var users = JsonConvert.DeserializeObject<StudentDto>(content.Result);
return users;
}
else
{
return new StudentDto();
}
}
catch (Exception ex)
{
Console.WriteLine($"获取失败,{ex.Message}, InnerException: {ex.InnerException}");
return new StudentDto();
}
}
public async Task<ResponseDto> UserRegister(UserRegistrationToClassDto userRegistrationToClassDto)
{
try
{
var result = await _client.PostAsJsonAsync("class/userRegiste",
userRegistrationToClassDto);
var data = await result.Content.ReadAsStringAsync();
await _authenticationClientService.RefreshTokenAsync();
return new ResponseDto
{
IsSuccessfulRegistration = result.IsSuccessStatusCode,
Errors = result.IsSuccessStatusCode ? null : new string[] { data }
};
}
catch (Exception ex)
{
// 实际应用中,这里应该加入日志记录
Console.WriteLine($"Error in UserRegister: {ex.Message}");
return new ResponseDto { IsSuccessfulRegistration = false, Errors = new string[] { ex.Message } };
}
}
}
}