- 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.
78 lines
2.3 KiB
C#
78 lines
2.3 KiB
C#
using CMSMicroservice.Application.Common.Interfaces;
|
|
using CMSMicroservice.Domain.Enums;
|
|
using MediatR;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace CMSMicroservice.Application.ConfigurationCQ.Commands.SeedVATConfiguration;
|
|
|
|
/// <summary>
|
|
/// Seed initial VAT configuration
|
|
/// نرخ مالیات پیشفرض ۹٪
|
|
/// </summary>
|
|
public class SeedVATConfigurationCommand : IRequest<Unit>
|
|
{
|
|
}
|
|
|
|
public class SeedVATConfigurationCommandHandler : IRequestHandler<SeedVATConfigurationCommand, Unit>
|
|
{
|
|
private readonly IApplicationDbContext _context;
|
|
private readonly ILogger<SeedVATConfigurationCommandHandler> _logger;
|
|
|
|
public SeedVATConfigurationCommandHandler(
|
|
IApplicationDbContext context,
|
|
ILogger<SeedVATConfigurationCommandHandler> logger)
|
|
{
|
|
_context = context;
|
|
_logger = logger;
|
|
}
|
|
|
|
public async Task<Unit> Handle(SeedVATConfigurationCommand request, CancellationToken cancellationToken)
|
|
{
|
|
var configs = new[]
|
|
{
|
|
new
|
|
{
|
|
Scope = ConfigurationScope.VAT,
|
|
Key = "Rate",
|
|
Value = "0.09",
|
|
Description = "نرخ مالیات بر ارزش افزوده (۹٪)"
|
|
},
|
|
new
|
|
{
|
|
Scope = ConfigurationScope.VAT,
|
|
Key = "IsEnabled",
|
|
Value = "true",
|
|
Description = "فعال/غیرفعال بودن محاسبه مالیات"
|
|
}
|
|
};
|
|
|
|
foreach (var config in configs)
|
|
{
|
|
var exists = _context.SystemConfigurations
|
|
.Any(x => x.Scope == config.Scope && x.Key == config.Key);
|
|
|
|
if (!exists)
|
|
{
|
|
_context.SystemConfigurations.Add(new Domain.Entities.Configuration.SystemConfiguration
|
|
{
|
|
Scope = config.Scope,
|
|
Key = config.Key,
|
|
Value = config.Value,
|
|
Description = config.Description
|
|
});
|
|
|
|
_logger.LogInformation(
|
|
"VAT configuration seeded: {Scope}.{Key} = {Value}",
|
|
config.Scope,
|
|
config.Key,
|
|
config.Value
|
|
);
|
|
}
|
|
}
|
|
|
|
await _context.SaveChangesAsync(cancellationToken);
|
|
|
|
return Unit.Value;
|
|
}
|
|
}
|