Add validators and services for Product Galleries and Product Tags
- Implemented Create, Delete, Get, and Update validators for Product Galleries. - Added Create, Delete, Get, and Update validators for Product Tags. - Created service classes for handling Discount Categories, Discount Orders, Discount Products, Discount Shopping Cart, Product Categories, Product Galleries, and Product Tags. - Each service class integrates with CQRS for command and query handling. - Established mapping profiles for Product Galleries.
This commit is contained in:
+46
@@ -0,0 +1,46 @@
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using MediatR;
|
||||
|
||||
namespace CMSMicroservice.Application.DiscountShopCQ.Queries.GetOrderById;
|
||||
|
||||
public class GetOrderByIdQuery : IRequest<OrderDetailDto?>
|
||||
{
|
||||
public long OrderId { get; set; }
|
||||
public long UserId { get; set; }
|
||||
}
|
||||
|
||||
public class OrderDetailDto
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long UserId { get; set; }
|
||||
public long TotalAmount { get; set; }
|
||||
public long DiscountBalanceUsed { get; set; }
|
||||
public long GatewayAmountPaid { get; set; }
|
||||
public long VatAmount { get; set; }
|
||||
public PaymentStatus PaymentStatus { get; set; }
|
||||
public DateTime? PaymentDate { get; set; }
|
||||
public DeliveryStatus DeliveryStatus { get; set; }
|
||||
public string? TrackingCode { get; set; }
|
||||
public string? DeliveryDescription { get; set; }
|
||||
public DateTime Created { get; set; }
|
||||
public UserAddressDto Address { get; set; }
|
||||
public List<OrderItemDto> Items { get; set; } = new();
|
||||
}
|
||||
|
||||
public class UserAddressDto
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public string Address { get; set; }
|
||||
public string PostalCode { get; set; }
|
||||
}
|
||||
|
||||
public class OrderItemDto
|
||||
{
|
||||
public long ProductId { get; set; }
|
||||
public string ProductTitle { get; set; }
|
||||
public int Count { get; set; }
|
||||
public long UnitPrice { get; set; }
|
||||
public int DiscountPercentUsed { get; set; }
|
||||
public long DiscountAmount { get; set; }
|
||||
public long FinalPrice { get; set; }
|
||||
}
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
using CMSMicroservice.Application.Common.Interfaces;
|
||||
using MediatR;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace CMSMicroservice.Application.DiscountShopCQ.Queries.GetOrderById;
|
||||
|
||||
public class GetOrderByIdQueryHandler : IRequestHandler<GetOrderByIdQuery, OrderDetailDto?>
|
||||
{
|
||||
private readonly IApplicationDbContext _context;
|
||||
|
||||
public GetOrderByIdQueryHandler(IApplicationDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public async Task<OrderDetailDto?> Handle(GetOrderByIdQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
var order = await _context.DiscountOrders
|
||||
.Where(o => o.Id == request.OrderId && o.UserId == request.UserId)
|
||||
.Include(o => o.UserAddress)
|
||||
.Include(o => o.OrderDetails)
|
||||
.ThenInclude(od => od.Product)
|
||||
.FirstOrDefaultAsync(cancellationToken);
|
||||
|
||||
if (order == null)
|
||||
return null;
|
||||
|
||||
return new OrderDetailDto
|
||||
{
|
||||
Id = order.Id,
|
||||
UserId = order.UserId,
|
||||
TotalAmount = order.TotalAmount,
|
||||
DiscountBalanceUsed = order.DiscountBalanceUsed,
|
||||
GatewayAmountPaid = order.GatewayAmountPaid,
|
||||
VatAmount = order.VatAmount,
|
||||
PaymentStatus = order.PaymentStatus,
|
||||
PaymentDate = order.PaymentDate,
|
||||
DeliveryStatus = order.DeliveryStatus,
|
||||
TrackingCode = order.TrackingCode,
|
||||
DeliveryDescription = order.DeliveryDescription,
|
||||
Created = order.Created,
|
||||
Address = new UserAddressDto
|
||||
{
|
||||
Title = order.UserAddress.Title,
|
||||
Address = order.UserAddress.Address,
|
||||
PostalCode = order.UserAddress.PostalCode
|
||||
},
|
||||
Items = order.OrderDetails.Select(od => new OrderItemDto
|
||||
{
|
||||
ProductId = od.ProductId,
|
||||
ProductTitle = od.Product.Title,
|
||||
Count = od.Count,
|
||||
UnitPrice = od.UnitPrice,
|
||||
DiscountPercentUsed = od.DiscountPercentUsed,
|
||||
DiscountAmount = od.DiscountAmount,
|
||||
FinalPrice = od.FinalPrice
|
||||
}).ToList()
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user