using Microsoft.AspNetCore.Mvc; using w230415_classes.Intf; namespace w230415_webapi.Controllers { [ApiController] [Route("v1/hall")] public class HallController : ControllerBase { private readonly IHall _hall; public HallController(IHall hall) { _hall = hall; } [HttpGet(Name = "GetNotBookedPlaces")] public IEnumerable GetNotBooked() { return _hall.GetNotBookedPlaceList(); } [HttpGet("seat/{iRow}/{iPosition}", Name = "GetPlace")] public IHallPlace GetHallPlace( int iRow, int iPosition) { var place = _hall.ReadPlace(iRow, iPosition); Response.StatusCode = place != null ? 200 : 404; return place; } [HttpGet("seat", Name = "GetPlace by query params")] public IHallPlace GetHallPlace2( int iRow, int iPosition) { var place = _hall.ReadPlace(iRow, iPosition); Response.StatusCode = place != null ? 200 : 404; return place; } [HttpPost("seat", Name = "Add place by form params")] public void AddHallPlace( [FromForm] int iRow, [FromForm] int iPosition) { bool result = _hall.AddPlace(iRow, iPosition); Response.StatusCode = result ? 200 : 500; } [HttpDelete("seat", Name = "Remove place by form params")] public void RemoveHallPlace( [FromHeader] int iRow, [FromHeader] int iPosition) { bool result = _hall.DeletePlace(iRow, iPosition); Response.StatusCode = result ? 200 : 500; } [HttpPatch("seat/booking/{iRow}/{iPosition}", Name = "Set booking status by params")] public void SetBooking( int iRow, int iPosition) { bool result = _hall.BookPlace(iRow, iPosition); Response.StatusCode = result ? 200 : 500; } } }