Files
mlb-gameday-dotnet-react/divisions/Controllers/DivisionsController.cs
2023-06-01 08:52:05 -05:00

53 lines
1.3 KiB
C#

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<ActionResult> 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<ActionResult> GetDivisionById(int id)
{
var division = await _sender.Send(new GetDivisionByIdQuery
{
DivisionId = id
});
return Ok(division);
}
}
}