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:
+2
-2
@@ -12,8 +12,8 @@ public class CreateNewTransactionsCommandHandler : IRequestHandler<CreateNewTran
|
||||
public async Task<CreateNewTransactionsResponseDto> Handle(CreateNewTransactionsCommand request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var entity = request.Adapt<Transactions>();
|
||||
await _context.Transactionss.AddAsync(entity, cancellationToken);
|
||||
var entity = request.Adapt<Transaction>();
|
||||
await _context.Transactions.AddAsync(entity, cancellationToken);
|
||||
entity.AddDomainEvent(new CreateNewTransactionsEvent(entity));
|
||||
await _context.SaveChangesAsync(cancellationToken);
|
||||
return entity.Adapt<CreateNewTransactionsResponseDto>();
|
||||
|
||||
+3
-3
@@ -11,10 +11,10 @@ public class DeleteTransactionsCommandHandler : IRequestHandler<DeleteTransactio
|
||||
|
||||
public async Task<Unit> Handle(DeleteTransactionsCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
var entity = await _context.Transactionss
|
||||
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(Transactions), request.Id);
|
||||
var entity = await _context.Transactions
|
||||
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(Transaction), request.Id);
|
||||
entity.IsDeleted = true;
|
||||
_context.Transactionss.Update(entity);
|
||||
_context.Transactions.Update(entity);
|
||||
entity.AddDomainEvent(new DeleteTransactionsEvent(entity));
|
||||
await _context.SaveChangesAsync(cancellationToken);
|
||||
return Unit.Value;
|
||||
|
||||
+4
-4
@@ -15,12 +15,12 @@ public class RefundTransactionCommandHandler : IRequestHandler<RefundTransaction
|
||||
public async Task<RefundTransactionResponseDto> Handle(RefundTransactionCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
// پیدا کردن تراکنش اصلی
|
||||
var originalTransaction = await _context.Transactionss
|
||||
var originalTransaction = await _context.Transactions
|
||||
.FirstOrDefaultAsync(t => t.Id == request.TransactionId, cancellationToken);
|
||||
|
||||
if (originalTransaction == null)
|
||||
{
|
||||
throw new NotFoundException(nameof(Transactions), request.TransactionId);
|
||||
throw new NotFoundException(nameof(Transaction), request.TransactionId);
|
||||
}
|
||||
|
||||
// چک کردن که تراکنش Success باشد
|
||||
@@ -38,7 +38,7 @@ public class RefundTransactionCommandHandler : IRequestHandler<RefundTransaction
|
||||
}
|
||||
|
||||
// ایجاد تراکنش استرداد جدید
|
||||
var refundTransaction = new Transactions
|
||||
var refundTransaction = new Transaction
|
||||
{
|
||||
Amount = -refundAmount, // مبلغ منفی برای استرداد
|
||||
Description = $"استرداد تراکنش {request.TransactionId}: {request.RefundReason}",
|
||||
@@ -48,7 +48,7 @@ public class RefundTransactionCommandHandler : IRequestHandler<RefundTransaction
|
||||
Type = TransactionType.Buy // یا میتونیم یک نوع جدید برای Refund تعریف کنیم
|
||||
};
|
||||
|
||||
await _context.Transactionss.AddAsync(refundTransaction, cancellationToken);
|
||||
await _context.Transactions.AddAsync(refundTransaction, cancellationToken);
|
||||
refundTransaction.AddDomainEvent(new RefundTransactionEvent(refundTransaction, originalTransaction));
|
||||
|
||||
await _context.SaveChangesAsync(cancellationToken);
|
||||
|
||||
+3
-3
@@ -11,10 +11,10 @@ public class UpdateTransactionsCommandHandler : IRequestHandler<UpdateTransactio
|
||||
|
||||
public async Task<Unit> Handle(UpdateTransactionsCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
var entity = await _context.Transactionss
|
||||
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(Transactions), request.Id);
|
||||
var entity = await _context.Transactions
|
||||
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(Transaction), request.Id);
|
||||
request.Adapt(entity);
|
||||
_context.Transactionss.Update(entity);
|
||||
_context.Transactions.Update(entity);
|
||||
entity.AddDomainEvent(new UpdateTransactionsEvent(entity));
|
||||
await _context.SaveChangesAsync(cancellationToken);
|
||||
return Unit.Value;
|
||||
|
||||
+2
-2
@@ -15,12 +15,12 @@ public class VerifyTransactionCommandHandler : IRequestHandler<VerifyTransaction
|
||||
public async Task<VerifyTransactionResponseDto> Handle(VerifyTransactionCommand request, CancellationToken cancellationToken)
|
||||
{
|
||||
// پیدا کردن تراکنش
|
||||
var transaction = await _context.Transactionss
|
||||
var transaction = await _context.Transactions
|
||||
.FirstOrDefaultAsync(t => t.Id == request.TransactionId, cancellationToken);
|
||||
|
||||
if (transaction == null)
|
||||
{
|
||||
throw new NotFoundException(nameof(Transactions), request.TransactionId);
|
||||
throw new NotFoundException(nameof(Transaction), request.TransactionId);
|
||||
}
|
||||
|
||||
// چک کردن که تراکنش در وضعیت Pending باشد
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ public class GetAllTransactionsByFilterQueryHandler : IRequestHandler<GetAllTran
|
||||
|
||||
public async Task<GetAllTransactionsByFilterResponseDto> Handle(GetAllTransactionsByFilterQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
var query = _context.Transactionss
|
||||
var query = _context.Transactions
|
||||
.ApplyOrder(sortBy: request.SortBy)
|
||||
.AsNoTracking()
|
||||
.AsQueryable();
|
||||
|
||||
+2
-2
@@ -11,12 +11,12 @@ public class GetTransactionsQueryHandler : IRequestHandler<GetTransactionsQuery,
|
||||
public async Task<GetTransactionsResponseDto> Handle(GetTransactionsQuery request,
|
||||
CancellationToken cancellationToken)
|
||||
{
|
||||
var response = await _context.Transactionss
|
||||
var response = await _context.Transactions
|
||||
.AsNoTracking()
|
||||
.Where(x => x.Id == request.Id)
|
||||
.ProjectToType<GetTransactionsResponseDto>()
|
||||
.FirstOrDefaultAsync(cancellationToken);
|
||||
|
||||
return response ?? throw new NotFoundException(nameof(Transactions), request.Id);
|
||||
return response ?? throw new NotFoundException(nameof(Transaction), request.Id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user