Files
FA_WEB/FaKrosnoApi/Controllers/EdiCustomerOrdersController.cs
trencik91 0199467f72 * Extended of Dtos
* Added new Services and Controllers
2025-09-03 15:04:22 +02:00

63 lines
2.3 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Services;
namespace FaKrosnoApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class EdiCustomerOrdersController(IEdiCustomerOrderService service) : Controller
{
[HttpGet]
public async Task<ActionResult<IEnumerable<EdiCustomerOrderDto>>> GetAll()
{
IEnumerable<EdiCustomerOrderDto?> ediCustomerOrders = await service.GetAll();
return Ok(ediCustomerOrders);
}
[HttpGet("by-date")]
public async Task<ActionResult<IEnumerable<EdiCustomerOrderDto>>> GetByDate([FromQuery] DateTime date)
{
IEnumerable<EdiCustomerOrderDto?> scheduleOrders = await service.GetByDate(date);
return Ok(scheduleOrders);
}
[HttpGet("by-order-number")]
public async Task<ActionResult<EdiCustomerOrderDto>> GetByCustomerOrderNumber([FromQuery] Guid customerOrderNumber)
{
EdiCustomerOrderDto? scheduleOrder = await service.GetByOrderNumber(customerOrderNumber);
return scheduleOrder != null ? Ok(scheduleOrder) : NotFound();
}
[HttpGet("last-order-number")]
public async Task<ActionResult<int>> GetLastOrderNumber()
{
int lastOrderNumber = await service.GetLastOrderNumber();
return Ok(lastOrderNumber);
}
[HttpPost("send-to-syteline")]
public async Task<ActionResult<int>> SendOrderToSyteline([FromQuery] Guid customerOrderNumber)
{
int result = await service.SendOrderToSyteline(customerOrderNumber);
return result > 0 ? Ok() : BadRequest();
}
[HttpPost("save-orders")]
public async Task<ActionResult> SaveOrdersWithDetails([FromBody] List<EdiCustomerOrderDto> ediCustomerOrders)
{
if (!ediCustomerOrders.Any())
{
return BadRequest("The list of orders cannot be null or empty.");
}
var result = await service.SaveOrdersWithDetails(ediCustomerOrders);
return result.Item1
? Ok(result)
: BadRequest($"Failed to save orders. Error: {result.Item2}");
}
}
}