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
@@ -13,9 +13,9 @@ public class CreateNewUserAddressCommandHandler : IRequestHandler<CreateNewUserA
CancellationToken cancellationToken)
{
var entity = request.Adapt<UserAddress>();
if (!await _context.UserAddresss.AnyAsync(x => x.UserId == request.UserId, cancellationToken: cancellationToken))
if (!await _context.UserAddresses.AnyAsync(x => x.UserId == request.UserId, cancellationToken: cancellationToken))
entity.IsDefault = true;
await _context.UserAddresss.AddAsync(entity, cancellationToken);
await _context.UserAddresses.AddAsync(entity, cancellationToken);
entity.AddDomainEvent(new CreateNewUserAddressEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return entity.Adapt<CreateNewUserAddressResponseDto>();
@@ -11,10 +11,10 @@ public class DeleteUserAddressCommandHandler : IRequestHandler<DeleteUserAddress
public async Task<Unit> Handle(DeleteUserAddressCommand request, CancellationToken cancellationToken)
{
var entity = await _context.UserAddresss
var entity = await _context.UserAddresses
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(UserAddress), request.Id);
entity.IsDeleted = true;
_context.UserAddresss.Update(entity);
_context.UserAddresses.Update(entity);
entity.AddDomainEvent(new DeleteUserAddressEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return Unit.Value;
@@ -11,17 +11,17 @@ public class SetAddressAsDefaultCommandHandler : IRequestHandler<SetAddressAsDef
public async Task<Unit> Handle(SetAddressAsDefaultCommand request, CancellationToken cancellationToken)
{
var entity = await _context.UserAddresss
var entity = await _context.UserAddresses
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(UserAddress), request.Id);
var entities = await _context.UserAddresss
var entities = await _context.UserAddresses
.Where(x => x.UserId == entity.UserId)
.ToListAsync(cancellationToken);
entities.ForEach(x => x.IsDefault = false);
await _context.SaveChangesAsync(cancellationToken);
entity.IsDefault = true;
_context.UserAddresss.Update(entity);
_context.UserAddresses.Update(entity);
entity.AddDomainEvent(new SetAddressAsDefaultEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return Unit.Value;
@@ -11,10 +11,10 @@ public class UpdateUserAddressCommandHandler : IRequestHandler<UpdateUserAddress
public async Task<Unit> Handle(UpdateUserAddressCommand request, CancellationToken cancellationToken)
{
var entity = await _context.UserAddresss
var entity = await _context.UserAddresses
.FirstOrDefaultAsync(x => x.Id == request.Id, cancellationToken) ?? throw new NotFoundException(nameof(UserAddress), request.Id);
request.Adapt(entity);
_context.UserAddresss.Update(entity);
_context.UserAddresses.Update(entity);
entity.AddDomainEvent(new UpdateUserAddressEvent(entity));
await _context.SaveChangesAsync(cancellationToken);
return Unit.Value;
@@ -10,7 +10,7 @@ public class GetAllUserAddressByFilterQueryHandler : IRequestHandler<GetAllUserA
public async Task<GetAllUserAddressByFilterResponseDto> Handle(GetAllUserAddressByFilterQuery request, CancellationToken cancellationToken)
{
var query = _context.UserAddresss
var query = _context.UserAddresses
.ApplyOrder(sortBy: request.SortBy)
.AsNoTracking()
.AsQueryable();
@@ -11,7 +11,7 @@ public class GetUserAddressQueryHandler : IRequestHandler<GetUserAddressQuery, G
public async Task<GetUserAddressResponseDto> Handle(GetUserAddressQuery request,
CancellationToken cancellationToken)
{
var response = await _context.UserAddresss
var response = await _context.UserAddresses
.AsNoTracking()
.Where(x => x.Id == request.Id)
.ProjectToType<GetUserAddressResponseDto>()