using System.Text.Json; using PaydayFrontend.Models; namespace PaydayFrontend.Services; public interface IUniversityService { public Task> GetAllUniversity(); public Task> GetDirectionsByUniversityId(long universityId); public Task GetUniversityById(long id); } public class UniversityService : IUniversityService { private readonly HttpClient _httpClient; public UniversityService(HttpClient httpClient) { _httpClient = httpClient; _httpClient.BaseAddress = new Uri("https://payday.zetcraft.ru"); } public async Task> GetAllUniversity() { var response = await _httpClient.GetAsync("v1/public/university"); var result = await response.Content.ReadAsStringAsync(); var university = JsonSerializer.Deserialize>(result, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); return university; } public async Task> GetDirectionsByUniversityId(long universityId) { var response = await _httpClient.GetAsync($"v1/public/university/{universityId}/directions"); var result = await response.Content.ReadAsStringAsync(); var directions = JsonSerializer.Deserialize>(result, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); return directions; } public async Task GetUniversityById(long id) { var response = await _httpClient.GetAsync("v1/public/university/" + id); var result = await response.Content.ReadAsStringAsync(); var university = JsonSerializer.Deserialize(result, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); return university; } }