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

55 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
using MediatR;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Venues.Entities;
using Venues.Queries;
namespace Venues.Controllers
{
[ApiController]
[Route("api/venues")]
public class VenuesController : ControllerBase
{
private readonly ISender _sender;
public VenuesController(ISender sender) => _sender = sender;
[HttpGet]
public async Task<ActionResult> GetVenues([FromQuery] int pageNumber, [FromQuery] int pageSize)
{
var venues = await _sender.Send(new GetVenuesQuery
{
PageNumber = pageNumber,
PageSize = pageSize
});
Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(new
{
venues.CurrentPage,
venues.PageSize,
venues.TotalCount,
venues.TotalPages
}));
return Ok(venues);
}
[HttpGet("{id}")]
public async Task<ActionResult> GetVenueById(int id)
{
var venue = await _sender.Send(new GetVenueByIdQuery
{
VenueId = id
});
return Ok(venue);
}
}
}