using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using MediatR; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Seasons.Queries; namespace Seasons.Controllers { [ApiController] [Route("api/seasons")] public class SeasonsController : ControllerBase { private readonly ISender _sender; public SeasonsController(ISender sender) => _sender = sender; [HttpGet] public async Task GetSeasons([FromQuery] int pageNumber, [FromQuery] int pageSize) { var seasons = await _sender.Send(new GetSeasonsQuery { PageNumber = pageNumber, PageSize = pageSize }); Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(new { seasons.CurrentPage, seasons.PageSize, seasons.TotalCount, seasons.TotalPages })); return Ok(seasons); } [HttpGet("{id}")] public async Task GetSeasonById(int id) { var season = await _sender.Send(new GetSeasonByIdQuery { SeasonId = id }); return Ok(season); } } }