using MediatR; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using Teams.Entities; using Teams.Queries; namespace Teams.Controllers; [ApiController] [Route("api/teams")] public class TeamsController : ControllerBase { private readonly ISender _sender; public TeamsController(ISender sender) => _sender = sender; [HttpGet] public async Task GetTeams([FromQuery] int pageNumber, [FromQuery] int pageSize) { var teams = await _sender.Send(new GetTeamsQuery { PageNumber = pageNumber, PageSize = pageSize }); Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(new { teams.CurrentPage, teams.PageSize, teams.TotalCount, teams.TotalPages })); return Ok(teams); } [HttpGet("{id}")] public async Task GetTeamById(int id) { var team = await _sender.Send(new GetTeamByIdQuery { TeamId = id }); return Ok(team); } }