Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| db431e1682 | |||
| ad2ea48592 | |||
| 0a9a459892 | |||
| f5a69de0a0 | |||
| fc4db32f20 | |||
| a9aa0a675a | |||
| a763e5e40e | |||
| 1ef5e52ed9 | |||
| c06cf13add | |||
| 92c60e6616 | |||
| 21788c66a3 | |||
| 54ef7a6e5f | |||
| 6594e0aecd |
@@ -43,7 +43,7 @@ public sealed class OrderService(IDbContextFactory<MidrandBooksDbContext> contex
|
|||||||
if (!await context.Orders.AnyAsync(o => o.Id == orderId, cancellationToken))
|
if (!await context.Orders.AnyAsync(o => o.Id == orderId, cancellationToken))
|
||||||
return Result.Fail<long>("Order not found.");
|
return Result.Fail<long>("Order not found.");
|
||||||
|
|
||||||
if (!await context.Books.AnyAsync(ab => ab.Id == request.AuthorBookId, cancellationToken))
|
if(!await context.Books.AnyAsync(ab => ab.Id == request.AuthorBookId, cancellationToken))
|
||||||
return Result.Fail<long>("Author book not found.");
|
return Result.Fail<long>("Author book not found.");
|
||||||
|
|
||||||
if (!await context.Prices.AnyAsync(pp => pp.Id == request.ProductPriceId, cancellationToken))
|
if (!await context.Prices.AnyAsync(pp => pp.Id == request.ProductPriceId, cancellationToken))
|
||||||
@@ -51,7 +51,7 @@ public sealed class OrderService(IDbContextFactory<MidrandBooksDbContext> contex
|
|||||||
|
|
||||||
var existingItem = await context.OrderItems.FirstOrDefaultAsync(i => i.ProductPriceId == request.ProductPriceId && i.OrderId == orderId, cancellationToken);
|
var existingItem = await context.OrderItems.FirstOrDefaultAsync(i => i.ProductPriceId == request.ProductPriceId && i.OrderId == orderId, cancellationToken);
|
||||||
|
|
||||||
if (existingItem is not null)
|
if(existingItem is not null)
|
||||||
{
|
{
|
||||||
existingItem.Quantity += request.Quantity;
|
existingItem.Quantity += request.Quantity;
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ public sealed class OrderService(IDbContextFactory<MidrandBooksDbContext> contex
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (items.Length == 0)
|
if(items.Length == 0)
|
||||||
return Result.Fail("No items to add.");
|
return Result.Fail("No items to add.");
|
||||||
|
|
||||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||||
@@ -203,33 +203,13 @@ public sealed class OrderService(IDbContextFactory<MidrandBooksDbContext> contex
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async ValueTask<Result<OrderItem[]>> GetOrderItemsAsync(long orderId, CancellationToken cancellationToken = default)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
|
||||||
|
|
||||||
var orderItems = await context.OrderItems
|
|
||||||
.Where(o => o.OrderId == orderId)
|
|
||||||
.ToListAsync(cancellationToken);
|
|
||||||
|
|
||||||
return orderItems.Count > 0
|
|
||||||
? Result.Ok(orderItems.Select(i => i.ToModel()).ToArray())
|
|
||||||
: Result.Fail<OrderItem[]>($"Order items not found for order ID {orderId}");
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
return Result.Fail(new Error(ex.Message).CausedBy(ex));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async ValueTask<Result<Order[]>> GetOrdersByCustomerAsync(long customerId, CancellationToken cancellationToken = default)
|
public async ValueTask<Result<Order[]>> GetOrdersByCustomerAsync(long customerId, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||||
|
|
||||||
if (!await context.Customers.AnyAsync(c => c.Id == customerId, cancellationToken))
|
if(!await context.Customers.AnyAsync(c => c.Id == customerId, cancellationToken))
|
||||||
return Result.Fail<Order[]>("Customer not found.");
|
return Result.Fail<Order[]>("Customer not found.");
|
||||||
|
|
||||||
var orders = await context.Orders
|
var orders = await context.Orders
|
||||||
@@ -296,16 +276,16 @@ public sealed class OrderService(IDbContextFactory<MidrandBooksDbContext> contex
|
|||||||
{
|
{
|
||||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||||
|
|
||||||
if (!await context.Orders.AnyAsync(o => o.Id == orderId, cancellationToken))
|
if(!await context.Orders.AnyAsync(o => o.Id == orderId, cancellationToken))
|
||||||
return Result.Fail("Order not found.");
|
return Result.Fail("Order not found.");
|
||||||
|
|
||||||
if (!await context.Addresses.AnyAsync(a => a.Id == request.AddressId, cancellationToken))
|
if(!await context.Addresses.AnyAsync(a => a.Id == request.AddressId, cancellationToken))
|
||||||
return Result.Fail("Address not found.");
|
return Result.Fail("Address not found.");
|
||||||
|
|
||||||
if (!await context.ShippingProviders.AnyAsync(sp => sp.Id == request.ShippingProviderId && sp.Enabled, cancellationToken))
|
if(!await context.ShippingProviders.AnyAsync(sp => sp.Id == request.ShippingProviderId && sp.Enabled, cancellationToken))
|
||||||
return Result.Fail("Shipping provider not found or disabled.");
|
return Result.Fail("Shipping provider not found or disabled.");
|
||||||
|
|
||||||
if (await context.Shippings.AnyAsync(s => s.OrderId == orderId, cancellationToken))
|
if(await context.Shippings.AnyAsync(s => s.OrderId == orderId, cancellationToken))
|
||||||
return Result.Fail("Shipping already exists for this order.");
|
return Result.Fail("Shipping already exists for this order.");
|
||||||
|
|
||||||
var shipping = context.Shippings.Add(new Entities.Shipping
|
var shipping = context.Shippings.Add(new Entities.Shipping
|
||||||
@@ -418,7 +398,7 @@ public sealed class OrderService(IDbContextFactory<MidrandBooksDbContext> contex
|
|||||||
{
|
{
|
||||||
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
await using var context = await contextFactory.CreateDbContextAsync(cancellationToken);
|
||||||
|
|
||||||
if (await context.ShippingProviders.AnyAsync(sp => sp.Type == request.Type, cancellationToken))
|
if(await context.ShippingProviders.AnyAsync(sp => sp.Type == request.Type, cancellationToken))
|
||||||
return Result.Fail("Shipping provider with the same type already exists.");
|
return Result.Fail("Shipping provider with the same type already exists.");
|
||||||
|
|
||||||
var shippingProvider = context.ShippingProviders.Add(new Entities.ShippingProvider
|
var shippingProvider = context.ShippingProviders.Add(new Entities.ShippingProvider
|
||||||
|
|||||||
Reference in New Issue
Block a user