using System.Net.Http.Json; using DbFirst.BlazorWebApp.Models; namespace DbFirst.BlazorWebApp.Services; public class MassDataApiClient { private readonly HttpClient _httpClient; private const string Endpoint = "api/massdata"; public MassDataApiClient(HttpClient httpClient) { _httpClient = httpClient; } public async Task GetCountAsync() { var result = await _httpClient.GetFromJsonAsync("api/massdata/count"); return result ?? 0; } public async Task> GetAllAsync(int skip, int take) { var result = await _httpClient.GetFromJsonAsync>($"{Endpoint}?skip={skip}&take={take}"); return result ?? new List(); } public async Task UpsertAsync(MassDataWriteDto dto) { var response = await _httpClient.PostAsJsonAsync($"{Endpoint}/upsert", dto); response.EnsureSuccessStatusCode(); var payload = await response.Content.ReadFromJsonAsync(); return payload ?? new MassDataReadDto(); } public async Task GetByCustomerNameAsync(string customerName) { if (string.IsNullOrWhiteSpace(customerName)) { return null; } var response = await _httpClient.GetAsync($"{Endpoint}/{Uri.EscapeDataString(customerName)}"); if (response.StatusCode == System.Net.HttpStatusCode.NotFound) { return null; } response.EnsureSuccessStatusCode(); return await response.Content.ReadFromJsonAsync(); } }