Files
mlb-gameday-dotnet-react/seasons/Controllers/SeasonsController.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 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<ActionResult> 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<ActionResult> GetSeasonById(int id)
{
var season = await _sender.Send(new GetSeasonByIdQuery
{
SeasonId = id
});
return Ok(season);
}
}
}