using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace CoreAgent.API.Controllers { [ApiController] [ApiVersion("1.0")] [Route("api/v{version:apiVersion}/[controller]")] public class WeatherForecastController : ControllerBase { private readonly ILogger _logger; private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; public WeatherForecastController(ILogger logger) { _logger = logger; } [HttpGet] public IActionResult Get() { _logger.LogInformation("Weather forecast requested"); var forecast = Enumerable.Range(1, 5).Select(index => new WeatherForecast ( DateOnly.FromDateTime(DateTime.Now.AddDays(index)), Random.Shared.Next(-20, 55), Summaries[Random.Shared.Next(Summaries.Length)] )) .ToArray(); _logger.LogDebug("Generated forecast for {Count} days", forecast.Length); return Ok(forecast); } } public record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); } }