public async Task<Result<ShippingOrderDetailsDto>> Handle(GetShippingOrderDetailsQuery request,
CancellationToken cancellationToken)
{
await using var db = await _db.CreateDbContextAsync(cancellationToken);
var order = await db.ShippingOrders.AsNoTracking()
.Include(o => o.RequestedBy)
.Where(o => o.Number == request.Number)
.Select(o => new ShippingOrderDetailsDto(
o.Number, o.RequestedBy.FullName, o.Description, o.Address, o.Method, o.CostCenter.Id + " " + o.CostCenter.Name, o.Packages,
o.CreatedOn, o.ShippedOn, o.TrackingNumber, o.CostUsd, o.Attn, o.ShipTo,
o.BillTo, o.Status, o.Project, o.Carrier, o.AccountNumber,
o.Packages.Sum(p => p.UnitValueUsd * p.Quantity)))
.FirstOrDefaultAsync(cancellationToken);
return order ?? Result<ShippingOrderDetailsDto>.Fail("Order not found.");
}
public async Task<Result<ShippingOrderDetailsDto>> Handle(GetShippingOrderDetailsQuery request,
CancellationToken cancellationToken)
{
await using var db = await _db.CreateDbContextAsync(cancellationToken);
var order = await db.ShippingOrders.AsNoTracking()
.Include(o => o.RequestedBy)
.Where(o => o.Number == request.Number)
.Select(o => new ShippingOrderDetailsDto(
o.Number, o.RequestedBy.FullName, o.Description, o.Address, o.Method, o.CostCenter.Id + " " + o.CostCenter.Name, o.Packages,
o.CreatedOn, o.ShippedOn, o.TrackingNumber, o.CostUsd, o.Attn, o.ShipTo,
o.BillTo, o.Status, o.Project, o.Carrier, o.AccountNumber,
o.Packages.Sum(p => p.UnitValueUsd * p.Quantity)))
.FirstOrDefaultAsync(cancellationToken);
return order ?? Result<ShippingOrderDetailsDto>.Fail("Order not found.");
}