| File: Services\CatalogServiceClient.cs | Web Access |
| Project: src\playground\TestShop\MyFrontend\MyFrontend.csproj (MyFrontend) |
using System.Globalization; namespace MyFrontend.Services; public class CatalogServiceClient(HttpClient client) { public Task<Catalog?> GetItemsAsync(int? before = null, int? after = null) { // Make the query string with encoded parameters var query = (before, after) switch { (null, null) => default, (int b, null) => QueryString.Create("before", b.ToString(CultureInfo.InvariantCulture)), (null, int a) => QueryString.Create("after", a.ToString(CultureInfo.InvariantCulture)), _ => throw new InvalidOperationException(), }; return client.GetFromJsonAsync<Catalog>($"api/v1/catalog/items/type/all/brand{query}"); } } public record Catalog(int FirstId, int NextId, bool IsLastPage, IEnumerable<CatalogItem> Data); public record CatalogItem { public int Id { get; init; } public required string Name { get; init; } public required string Description { get; init; } public decimal Price { get; init; } public string? PictureUri { get; init; } public int CatalogBrandId { get; init; } public required string CatalogBrand { get; init; } public int CatalogTypeId { get; init; } public required string CatalogType { get; init; } }