diff --git a/Directory.Packages.props b/Directory.Packages.props
index aae2105..e96dccb 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,7 +1,6 @@
true
- true
net7.0
@@ -15,25 +14,25 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -42,13 +41,13 @@
-
+
-
-
+
+
all
@@ -61,6 +60,6 @@
-
+
\ No newline at end of file
diff --git a/src/ApplicationCore/Specifications/CustomerOrdersSpecification.cs b/src/ApplicationCore/Specifications/CustomerOrdersSpecification.cs
new file mode 100644
index 0000000..e3faa6a
--- /dev/null
+++ b/src/ApplicationCore/Specifications/CustomerOrdersSpecification.cs
@@ -0,0 +1,13 @@
+using Ardalis.Specification;
+using Microsoft.eShopWeb.ApplicationCore.Entities.OrderAggregate;
+
+namespace Microsoft.eShopWeb.ApplicationCore.Specifications;
+
+public class CustomerOrdersSpecification : Specification
+{
+ public CustomerOrdersSpecification(string buyerId)
+ {
+ Query.Where(o => o.BuyerId == buyerId)
+ .Include(o => o.OrderItems);
+ }
+}
diff --git a/src/Web/Features/MyOrders/GetMyOrders.cs b/src/Web/Features/MyOrders/GetMyOrders.cs
index aedfde1..5baf32c 100644
--- a/src/Web/Features/MyOrders/GetMyOrders.cs
+++ b/src/Web/Features/MyOrders/GetMyOrders.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
-using MediatR;
+using MediatR;
using Microsoft.eShopWeb.Web.ViewModels;
namespace Microsoft.eShopWeb.Web.Features.MyOrders;
diff --git a/src/Web/Features/MyOrders/GetMyOrdersHandler.cs b/src/Web/Features/MyOrders/GetMyOrdersHandler.cs
index 125f0a9..df6db4b 100644
--- a/src/Web/Features/MyOrders/GetMyOrdersHandler.cs
+++ b/src/Web/Features/MyOrders/GetMyOrdersHandler.cs
@@ -18,20 +18,12 @@ public class GetMyOrdersHandler : IRequestHandler> Handle(GetMyOrders request,
CancellationToken cancellationToken)
{
- var specification = new CustomerOrdersWithItemsSpecification(request.UserName);
+ var specification = new CustomerOrdersSpecification(request.UserName);
var orders = await _orderRepository.ListAsync(specification, cancellationToken);
return orders.Select(o => new OrderViewModel
{
OrderDate = o.OrderDate,
- OrderItems = o.OrderItems.Select(oi => new OrderItemViewModel()
- {
- PictureUrl = oi.ItemOrdered.PictureUri,
- ProductId = oi.ItemOrdered.CatalogItemId,
- ProductName = oi.ItemOrdered.ProductName,
- UnitPrice = oi.UnitPrice,
- Units = oi.Units
- }).ToList(),
OrderNumber = o.Id,
ShippingAddress = o.ShipToAddress,
Total = o.Total()
diff --git a/src/Web/Features/OrderDetails/GetOrderDetails.cs b/src/Web/Features/OrderDetails/GetOrderDetails.cs
index 2cc0721..deb1fb5 100644
--- a/src/Web/Features/OrderDetails/GetOrderDetails.cs
+++ b/src/Web/Features/OrderDetails/GetOrderDetails.cs
@@ -3,7 +3,7 @@ using Microsoft.eShopWeb.Web.ViewModels;
namespace Microsoft.eShopWeb.Web.Features.OrderDetails;
-public class GetOrderDetails : IRequest
+public class GetOrderDetails : IRequest
{
public string UserName { get; set; }
public int OrderId { get; set; }
diff --git a/src/Web/Features/OrderDetails/GetOrderDetailsHandler.cs b/src/Web/Features/OrderDetails/GetOrderDetailsHandler.cs
index be7b8dc..4c11199 100644
--- a/src/Web/Features/OrderDetails/GetOrderDetailsHandler.cs
+++ b/src/Web/Features/OrderDetails/GetOrderDetailsHandler.cs
@@ -6,7 +6,7 @@ using Microsoft.eShopWeb.Web.ViewModels;
namespace Microsoft.eShopWeb.Web.Features.OrderDetails;
-public class GetOrderDetailsHandler : IRequestHandler
+public class GetOrderDetailsHandler : IRequestHandler
{
private readonly IReadRepository _orderRepository;
@@ -15,7 +15,7 @@ public class GetOrderDetailsHandler : IRequestHandler Handle(GetOrderDetails request,
+ public async Task Handle(GetOrderDetails request,
CancellationToken cancellationToken)
{
var spec = new OrderWithItemsByIdSpec(request.OrderId);
@@ -26,7 +26,7 @@ public class GetOrderDetailsHandler : IRequestHandler new OrderItemViewModel
diff --git a/src/Web/ViewModels/OrderDetailViewModel.cs b/src/Web/ViewModels/OrderDetailViewModel.cs
new file mode 100644
index 0000000..18a3aa0
--- /dev/null
+++ b/src/Web/ViewModels/OrderDetailViewModel.cs
@@ -0,0 +1,6 @@
+namespace Microsoft.eShopWeb.Web.ViewModels;
+
+public class OrderDetailViewModel : OrderViewModel
+{
+ public List OrderItems { get; set; } = new();
+}
diff --git a/src/Web/ViewModels/OrderViewModel.cs b/src/Web/ViewModels/OrderViewModel.cs
index 582a504..d34866a 100644
--- a/src/Web/ViewModels/OrderViewModel.cs
+++ b/src/Web/ViewModels/OrderViewModel.cs
@@ -11,5 +11,4 @@ public class OrderViewModel
public decimal Total { get; set; }
public string Status => DEFAULT_STATUS;
public Address? ShippingAddress { get; set; }
- public List OrderItems { get; set; } = new();
}
diff --git a/src/Web/Views/Order/Detail.cshtml b/src/Web/Views/Order/Detail.cshtml
index 097d17e..c5eb47b 100644
--- a/src/Web/Views/Order/Detail.cshtml
+++ b/src/Web/Views/Order/Detail.cshtml
@@ -1,4 +1,4 @@
-@model OrderViewModel
+@model OrderDetailViewModel
@{
ViewData["Title"] = "My Order History";
}
diff --git a/tests/UnitTests/UnitTests.csproj b/tests/UnitTests/UnitTests.csproj
index f8bbe01..4b069f2 100644
--- a/tests/UnitTests/UnitTests.csproj
+++ b/tests/UnitTests/UnitTests.csproj
@@ -9,7 +9,6 @@
-