Files
FA_WEB/FaKrosnoApi/Controllers/WzHeaderController.cs
Piotr Kus ad641560ea * Added EmailAddresses and WzNumbers to WzHeader
* Changed approach to send email to addresses added to WzHeader
2025-05-25 11:01:18 +02:00

67 lines
2.3 KiB
C#

using Microsoft.AspNetCore.Mvc;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Services;
namespace FaKrosnoApi.Controllers;
[ApiController]
[Route("api/[controller]")]
public class WzHeaderController(IWzHeaderService service, IMaterialTransactionService materialTransactionService) : Controller
{
[HttpGet]
public async Task<ActionResult<IEnumerable<WzHeaderDto>>> GetAll()
{
IEnumerable<WzHeaderDto> wzHeaders = await service.GetAll();
return Ok(wzHeaders);
}
[HttpGet("by-customer-number")]
public async Task<ActionResult<IEnumerable<MaterialTransactionDto>>> GetByCustomerNumber(
[FromQuery] string customerNumber, [FromQuery] int customerSequence)
{
IEnumerable<MaterialTransactionDto> materialTransactions =
await materialTransactionService.GetByCustomerNumber(customerNumber, customerSequence);
return Ok(materialTransactions);
}
[HttpGet("all-wz-headers")]
public async Task<ActionResult<IEnumerable<MaterialTransactionDto>>> GetHeadersByCustomerNumber(
[FromQuery] string customerNumber, [FromQuery] int customerSequence)
{
IEnumerable<WzHeaderDto> wzHeaders =
await service.GetByCustomerNumber(customerNumber, customerSequence);
return Ok(wzHeaders.OrderByDescending(x => x.CreatedDate));
}
[HttpPost]
public async Task<ActionResult> CreateHeader([FromBody] WzHeaderDto wzHeader)
{
if (wzHeader == null)
{
return BadRequest("WzHeader cannot be null.");
}
await service.CreateHeader(wzHeader);
return CreatedAtAction(nameof(CreateHeader), wzHeader);
}
[HttpGet("by-id")]
public async Task<ActionResult<WzHeaderDto>> GetById([FromQuery] Guid id)
{
WzHeaderDto? wzHeader = await service.GetById(id);
return wzHeader != null ? Ok(wzHeader) : NotFound();
}
[HttpPost("add-emails")]
public async Task<IActionResult> AddEmailsToWzHeader([FromQuery] Guid id, [FromBody] string emailAddresses)
{
if (string.IsNullOrWhiteSpace(emailAddresses))
{
return BadRequest("Email addresses cannot be empty.");
}
await service.AddEmailsToWzHeader(id, emailAddresses);
return NoContent();
}
}