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>> GetAll() { IEnumerable ediCustomerOrders = await service.GetAll(); return Ok(ediCustomerOrders); } [HttpGet("by-date")] public async Task>> GetByDate([FromQuery] DateTime date) { IEnumerable scheduleOrders = await service.GetByDate(date); return Ok(scheduleOrders); } [HttpGet("by-order-number")] public async Task> GetByCustomerOrderNumber([FromQuery] Guid customerOrderNumber) { EdiCustomerOrderDto? scheduleOrder = await service.GetByOrderNumber(customerOrderNumber); return scheduleOrder != null ? Ok(scheduleOrder) : NotFound(); } [HttpGet("last-order-number")] public async Task> GetLastOrderNumber() { int lastOrderNumber = await service.GetLastOrderNumber(); return Ok(lastOrderNumber); } [HttpPost("send-to-syteline")] public async Task> SendOrderToSyteline([FromQuery] Guid customerOrderNumber) { int result = await service.SendOrderToSyteline(customerOrderNumber); return result > 0 ? Ok() : BadRequest(); } [HttpPost("save-orders")] public async Task SaveOrdersWithDetails([FromBody] List 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}"); } } }