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:
masoodafar-web
2025-12-04 02:40:49 +03:30
parent 40d54d08fc
commit f0f48118e7
436 changed files with 33159 additions and 2005 deletions

View File

@@ -12,8 +12,8 @@ public class CreateNewProductImagesCommandHandler : IRequestHandler<CreateNewPro
public async Task<CreateNewProductImagesResponseDto> Handle(CreateNewProductImagesCommand request,
CancellationToken cancellationToken)
{
var entity = request.Adapt<ProductImages>();
await _context.ProductImagess.AddAsync(entity, cancellationToken);
var entity = request.Adapt<ProductImage>();
await _context.ProductImages.AddAsync(entity, cancellationToken);
entity.AddDomainEvent(new CreateNewProductImagesEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return entity.Adapt<CreateNewProductImagesResponseDto>();

View File

@@ -11,10 +11,10 @@ public class DeleteProductImagesCommandHandler : IRequestHandler<DeleteProductIm
public async Task<Unit> Handle(DeleteProductImagesCommand request, CancellationToken cancellationToken)
{
var entity = await _context.ProductImagess
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(ProductImages), request.Id);
var entity = await _context.ProductImages
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(ProductImage), request.Id);
entity.IsDeleted = true;
_context.ProductImagess.Update(entity);
_context.ProductImages.Update(entity);
entity.AddDomainEvent(new DeleteProductImagesEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return Unit.Value;

View File

@@ -11,10 +11,10 @@ public class UpdateProductImagesCommandHandler : IRequestHandler<UpdateProductIm
public async Task<Unit> Handle(UpdateProductImagesCommand request, CancellationToken cancellationToken)
{
var entity = await _context.ProductImagess
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(ProductImages), request.Id);
var entity = await _context.ProductImages
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(ProductImage), request.Id);
request.Adapt(entity);
_context.ProductImagess.Update(entity);
_context.ProductImages.Update(entity);
entity.AddDomainEvent(new UpdateProductImagesEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return Unit.Value;

View File

@@ -10,7 +10,7 @@ public class GetAllProductImagesByFilterQueryHandler : IRequestHandler<GetAllPro
public async Task<GetAllProductImagesByFilterResponseDto> Handle(GetAllProductImagesByFilterQuery request, CancellationToken cancellationToken)
{
var query = _context.ProductImagess
var query = _context.ProductImages
.ApplyOrder(sortBy: request.SortBy)
.AsNoTracking()
.AsQueryable();

View File

@@ -11,12 +11,12 @@ public class GetProductImagesQueryHandler : IRequestHandler<GetProductImagesQuer
public async Task<GetProductImagesResponseDto> Handle(GetProductImagesQuery request,
CancellationToken cancellationToken)
{
var response = await _context.ProductImagess
var response = await _context.ProductImages
.AsNoTracking()
.Where(x => x.Id == request.Id)
.ProjectToType<GetProductImagesResponseDto>()
.FirstOrDefaultAsync(cancellationToken);
return response ?? throw new NotFoundException(nameof(ProductImages), request.Id);
return response ?? throw new NotFoundException(nameof(ProductImage), request.Id);
}
}