Files
FA_WEB/SytelineSaAppEfDataModel/Services/WzHeaderService.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

54 lines
1.8 KiB
C#

using AutoMapper;
using Microsoft.EntityFrameworkCore;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Entities;
namespace SytelineSaAppEfDataModel.Services;
public class WzHeaderService(SytelineSaAppDbContext context, IMapper mapper) : IWzHeaderService
{
public async Task<IEnumerable<WzHeaderDto>> GetAll()
{
return await context.WzHeaders.Select(x => mapper.Map<WzHeaderDto>(x)).ToListAsync();
}
public async Task<IEnumerable<WzHeaderDto>> GetByCustomerNumber(string customerNumber, int customerSequence)
{
return await context.WzHeaders.Include(x => x.Client)
.Where(x => x.Client.CustomerNumber == customerNumber && x.Client.CustomerSequence == customerSequence)
.Select(x => mapper.Map<WzHeaderDto>(x)).ToListAsync();
}
public async Task CreateHeader(WzHeaderDto wzHeader)
{
var entity = mapper.Map<WzHeader>(wzHeader);
await context.WzHeaders.AddAsync(entity);
await context.SaveChangesAsync();
}
public async Task<WzHeaderDto> GetById(Guid id)
{
var entity = await context.WzHeaders.FindAsync(id);
var items = await context.WzRowsMeyle.Where(x => x.FK_Header == id).Select(x => mapper.Map<WzRowMeyleDto>(x))
.ToListAsync();
WzHeaderDto wzHeader = mapper.Map<WzHeaderDto>(entity);
wzHeader.WzRowsMeyle = items;
return wzHeader;
}
public async Task AddEmailsToWzHeader(Guid id, string emailAddresses)
{
var entity = await context.WzHeaders.FindAsync(id);
if (entity == null)
{
throw new KeyNotFoundException($"WzHeader with ID {id} not found.");
}
entity.EmailAddresses = emailAddresses;
context.WzHeaders.Update(entity);
await context.SaveChangesAsync();
}
}