| File: WeatherApiClient.cs | Web Access |
| Project: src\playground\keycloak\Keycloak.Web\Keycloak.Web.csproj (Keycloak.Web) |
namespace Keycloak.Web; public class WeatherApiClient(HttpClient httpClient) { public async Task<WeatherForecast[]> GetWeatherAsync(int maxItems = 10, CancellationToken cancellationToken = default) { List<WeatherForecast>? forecasts = null; await foreach (var forecast in httpClient.GetFromJsonAsAsyncEnumerable<WeatherForecast>("/weatherforecast", cancellationToken)) { if (forecasts?.Count >= maxItems) { break; } if (forecast is not null) { forecasts ??= []; forecasts.Add(forecast); } } return forecasts?.ToArray() ?? []; } } public record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); }