Files
mlb-gameday-dotnet-react/sports/Controllers/SportsController.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 Sports.Queries;
namespace Sports.Controllers
{
[ApiController]
[Route("api/sports")]
public class SportsController : ControllerBase
{
private readonly ISender _sender;
public SportsController(ISender sender) => _sender = sender;
[HttpGet]
public async Task<ActionResult> GetSports([FromQuery] int pageNumber, [FromQuery] int pageSize)
{
var sports = await _sender.Send(new GetSportsQuery
{
PageNumber = pageNumber,
PageSize = pageSize
});
Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(new
{
sports.CurrentPage,
sports.PageSize,
sports.TotalCount,
sports.TotalPages
}));
return Ok(sports);
}
[HttpGet("{id}")]
public async Task<ActionResult> GetSportById(int id)
{
var sport = await _sender.Send(new GetSportByIdQuery
{
SportId = id
});
return Ok(sport);
}
}
}