77 lines
3.6 KiB
C#
77 lines
3.6 KiB
C#
using AutoMapper;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using SytelineSaAppEfDataModel.Dtos;
|
|
|
|
namespace SytelineSaAppEfDataModel.Services
|
|
{
|
|
public class CustomerOrderService(SytelineSaAppDbContext context, IMapper mapper) : ICustomerOrderService
|
|
{
|
|
public async Task<IEnumerable<CustomerOrderDto>> GetAll()
|
|
{
|
|
return await context.CustomerOrders.Select(x => mapper.Map<CustomerOrderDto>(x)).ToListAsync();
|
|
}
|
|
|
|
public async Task<CustomerOrderDto?> GetByOrderNumber(Guid orderNumber)
|
|
{
|
|
CustomerOrderDto? customerOrder = await context.CustomerOrders
|
|
.Where(x => x.RowPointer == orderNumber)
|
|
.Select(x => mapper.Map<CustomerOrderDto>(x)).FirstOrDefaultAsync();
|
|
if (customerOrder == null) return null;
|
|
|
|
customerOrder.CustomerOrderLines = await context.CustomerOrderLines
|
|
.Where(x => x.CoNum == customerOrder.CoNum)
|
|
.Select(x => mapper.Map<CustomerOrderLineDto>(x)).ToListAsync();
|
|
|
|
foreach (CustomerOrderLineDto customerOrderLine in customerOrder.CustomerOrderLines)
|
|
{
|
|
customerOrderLine.CustomerOrderLineItems = await context.CustomerOrderLineItems
|
|
.Where(x => x.CoNum == customerOrder.CoNum && x.CoLine == customerOrderLine.CoLine)
|
|
.Select(x => mapper.Map<CustomerOrderLineItemDto>(x)).ToListAsync();
|
|
}
|
|
|
|
IList<EdiCustomerOrderTranslateDto> ediCustomerOrderTranslates = await context.EdiCustomerOrderTranslates
|
|
.Where(x => x.CoCoNum == customerOrder.CoNum)
|
|
.Select(x => mapper.Map<EdiCustomerOrderTranslateDto>(x)).ToListAsync();
|
|
|
|
customerOrder.EdiCustomerOrderTranslates = ediCustomerOrderTranslates;
|
|
|
|
return customerOrder;
|
|
}
|
|
|
|
public async Task<CustomerOrderDto?> GetByCoNumber(string orderNumber)
|
|
{
|
|
CustomerOrderDto? customerOrder = await context.CustomerOrders
|
|
.Where(x => x.CoNum == orderNumber)
|
|
.Select(x => mapper.Map<CustomerOrderDto>(x)).FirstOrDefaultAsync();
|
|
if (customerOrder == null) return null;
|
|
|
|
customerOrder.CustomerOrderLines = await context.CustomerOrderLines
|
|
.Where(x => x.CoNum == customerOrder.CoNum)
|
|
.Select(x => mapper.Map<CustomerOrderLineDto>(x)).ToListAsync();
|
|
|
|
foreach (CustomerOrderLineDto customerOrderLine in customerOrder.CustomerOrderLines)
|
|
{
|
|
customerOrderLine.CustomerOrderLineItems = await context.CustomerOrderLineItems
|
|
.Where(x => x.CoNum == customerOrder.CoNum && x.CoLine == customerOrderLine.CoLine)
|
|
.Select(x => mapper.Map<CustomerOrderLineItemDto>(x)).ToListAsync();
|
|
}
|
|
|
|
IList<EdiCustomerOrderTranslateDto> ediCustomerOrderTranslates = await context.EdiCustomerOrderTranslates
|
|
.Where(x => x.CoCoNum == customerOrder.CoNum)
|
|
.Select(x => mapper.Map<EdiCustomerOrderTranslateDto>(x)).ToListAsync();
|
|
|
|
customerOrder.EdiCustomerOrderTranslates = ediCustomerOrderTranslates;
|
|
|
|
return customerOrder;
|
|
}
|
|
|
|
public async Task<IEnumerable<CustomerOrderLineItemDto>?> GetItemsByCoNumber(string customerOrderNumber)
|
|
{
|
|
List<CustomerOrderLineItemDto> customerOrderLineItems = await context.CustomerOrderLineItems
|
|
.Where(x => x.CoNum == customerOrderNumber)
|
|
.Select(x => mapper.Map<CustomerOrderLineItemDto>(x)).ToListAsync();
|
|
|
|
return customerOrderLineItems;
|
|
}
|
|
}
|
|
} |