- 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.
53 lines
1.6 KiB
C#
53 lines
1.6 KiB
C#
using CMSMicroservice.Application.Common.Interfaces;
|
|
using MediatR;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace CMSMicroservice.Application.OrderVATCQ.Queries.GetOrderVAT;
|
|
|
|
public class GetOrderVATQueryHandler : IRequestHandler<GetOrderVATQuery, OrderVATDto?>
|
|
{
|
|
private readonly IApplicationDbContext _context;
|
|
private readonly ILogger<GetOrderVATQueryHandler> _logger;
|
|
|
|
public GetOrderVATQueryHandler(
|
|
IApplicationDbContext context,
|
|
ILogger<GetOrderVATQueryHandler> logger)
|
|
{
|
|
_context = context;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task<OrderVATDto?> Handle(GetOrderVATQuery request, CancellationToken cancellationToken)
|
|
{
|
|
var orderVAT = await _context.OrderVATs
|
|
.Where(x => x.OrderId == request.OrderId && !x.IsDeleted)
|
|
.Select(x => new OrderVATDto
|
|
{
|
|
Id = x.Id,
|
|
OrderId = x.OrderId,
|
|
VATRate = x.VATRate,
|
|
VATRatePercentage = $"{x.VATRate * 100:F1}%",
|
|
BaseAmount = x.BaseAmount,
|
|
VATAmount = x.VATAmount,
|
|
TotalAmount = x.TotalAmount,
|
|
IsPaid = x.IsPaid,
|
|
PaidAt = x.PaidAt,
|
|
Note = x.Note,
|
|
Created = x.Created
|
|
})
|
|
.FirstOrDefaultAsync(cancellationToken);
|
|
|
|
if (orderVAT != null)
|
|
{
|
|
_logger.LogInformation(
|
|
"Retrieved VAT for order {OrderId}. VAT Amount: {VATAmount}",
|
|
request.OrderId,
|
|
orderVAT.VATAmount
|
|
);
|
|
}
|
|
|
|
return orderVAT;
|
|
}
|
|
}
|