using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Divisions.Queries; using MediatR; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace Divisions.Controllers { [ApiController] [Route("api/divisions")] public class DivisionsController : ControllerBase { private readonly ISender _sender; public DivisionsController(ISender sender) => _sender = sender; [HttpGet] public async Task GetDivisions([FromQuery] int pageNumber, [FromQuery] int pageSize) { var divisions = await _sender.Send(new GetDivisionsQuery { PageNumber = pageNumber, PageSize = pageSize }); Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(new { divisions.CurrentPage, divisions.PageSize, divisions.TotalCount, divisions.TotalPages })); return Ok(divisions); } [HttpGet("{id}")] public async Task GetDivisionById(int id) { var division = await _sender.Send(new GetDivisionByIdQuery { DivisionId = id }); return Ok(division); } } }