54 lines
1.8 KiB
C#
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();
|
|
}
|
|
} |