Files
FA_WEB/SytelineSaAppEfDataModel/Services/WzHeaderService.cs
2025-09-30 21:18:34 +02:00

66 lines
2.2 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<WzHeaderDto> GetByIdMarelli(Guid id)
{
var entity = await context.WzHeaders.FindAsync(id);
var items = await context.WzRowsMareli.Where(x => x.FKHeader == id).Select(x => mapper.Map<WzRowMarelliDto>(x))
.ToListAsync();
WzHeaderDto wzHeader = mapper.Map<WzHeaderDto>(entity);
wzHeader.WzRowsMarelli = 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();
}
}