using System.Net.Http.Json; using DbFirst.BlazorWasm.Models; namespace DbFirst.BlazorWasm.Services; public class CatalogApiClient { private readonly HttpClient _httpClient; private const string Endpoint = "api/catalogs"; public CatalogApiClient(HttpClient httpClient) { _httpClient = httpClient; } public async Task> GetAllAsync() { var result = await _httpClient.GetFromJsonAsync>(Endpoint); return result ?? new List(); } public async Task GetByIdAsync(int id) { return await _httpClient.GetFromJsonAsync($"{Endpoint}/{id}"); } public async Task CreateAsync(CatalogWriteDto dto) { var response = await _httpClient.PostAsJsonAsync(Endpoint, dto); if (!response.IsSuccessStatusCode) { return null; } return await response.Content.ReadFromJsonAsync(); } public async Task UpdateAsync(int id, CatalogWriteDto dto) { var response = await _httpClient.PutAsJsonAsync($"{Endpoint}/{id}", dto); return response.IsSuccessStatusCode; } public async Task DeleteAsync(int id) { var response = await _httpClient.DeleteAsync($"{Endpoint}/{id}"); return response.IsSuccessStatusCode; } }