Files
2025-07-20 11:49:20 +02:00

59 lines
1.8 KiB
C#

using Microsoft.AspNetCore.Mvc;
using uWine.Core.Domain.Entities;
using uWine.Core.Infrastructure.Services;
namespace uWine.Api.Controllers
{
[ApiController]
[Route("/[controller]")]
public class AreaController : Controller
{
private readonly IConfiguration _configuration;
private readonly CoordinatesService _coordinatesService;
public AreaController(IConfiguration configuration, CoordinatesService coordinatesService)
{
_configuration = configuration;
_coordinatesService = coordinatesService;
}
[HttpPost("save-area")]
public IActionResult SaveArea([FromBody] Dictionary<int, Coordinates> coordinates, int vineyardId)
{
if (coordinates == null)
return BadRequest("Invalid coordinates");
try
{
_coordinatesService.SaveArea(vineyardId, coordinates);
return Ok(new { status = "Area set successfully" });
}
catch (Exception ex)
{
return StatusCode(500, new { error = ex.Message });
}
}
[HttpGet("get-area")]
[ProducesResponseType(typeof(Dictionary<int, Coordinates>), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public IActionResult GetArea(int vineyardId)
{
try
{
var area = _coordinatesService.GetArea(vineyardId);
if (area == null || area.Count == 0)
return NotFound();
return Ok(area);
}
catch (Exception ex)
{
return StatusCode(500, new { error = ex.Message });
}
}
}
}