This commit is contained in:
2025-12-25 01:08:36 +08:00
parent 53b6ceaa69
commit 7b6ec9c1d8
7 changed files with 57 additions and 32 deletions

View File

@@ -5,9 +5,11 @@ using Atomx.Common.Entities;
using Atomx.Common.Models; using Atomx.Common.Models;
using Atomx.Data; using Atomx.Data;
using Atomx.Data.Services; using Atomx.Data.Services;
using FluentValidation;
using MapsterMapper; using MapsterMapper;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Atomx.Admin.Controllers namespace Atomx.Admin.Controllers
{ {
@@ -20,6 +22,8 @@ namespace Atomx.Admin.Controllers
readonly IIdCreatorService _idCreator; readonly IIdCreatorService _idCreator;
readonly IMapper _mapper; readonly IMapper _mapper;
readonly DataContext _dbContext; readonly DataContext _dbContext;
readonly IValidator<ProductAttributeOptionModel> _validator;
readonly IStringLocalizer<ProductAttributeOptionController> _localizer;
/// <summary> /// <summary>
/// ///
@@ -29,13 +33,16 @@ namespace Atomx.Admin.Controllers
/// <param name="idCreator"></param> /// <param name="idCreator"></param>
/// <param name="adminService"></param> /// <param name="adminService"></param>
/// <param name="mapper"></param> /// <param name="mapper"></param>
public ProductAttributeOptionController(ILogger<ProductAttributeOptionController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext) public ProductAttributeOptionController(ILogger<ProductAttributeOptionController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext,
IValidator<ProductAttributeOptionModel> validator, IStringLocalizer<ProductAttributeOptionController> localizer)
{ {
_logger = logger; _logger = logger;
_identityService = identityService; _identityService = identityService;
_idCreator = idCreator; _idCreator = idCreator;
_mapper = mapper; _mapper = mapper;
_dbContext = dataContext; _dbContext = dataContext;
_validator = validator;
_localizer = localizer;
} }
/// <summary> /// <summary>
@@ -107,8 +114,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Add(ProductAttributeOptionModel model) public IActionResult Add(ProductAttributeOptionModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new ProductAttributeOptionModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty; var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty;
@@ -150,8 +156,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Edit(ProductAttributeOptionModel model) public IActionResult Edit(ProductAttributeOptionModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new ProductAttributeOptionModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;

View File

@@ -8,10 +8,12 @@ using Atomx.Data;
using Atomx.Data.Services; using Atomx.Data.Services;
using Atomx.Utils.Extension; using Atomx.Utils.Extension;
using Atomx.Utils.Json; using Atomx.Utils.Json;
using FluentValidation;
using Mapster; using Mapster;
using MapsterMapper; using MapsterMapper;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Atomx.Admin.Controllers namespace Atomx.Admin.Controllers
{ {
@@ -24,6 +26,8 @@ namespace Atomx.Admin.Controllers
readonly IIdCreatorService _idCreator; readonly IIdCreatorService _idCreator;
readonly IMapper _mapper; readonly IMapper _mapper;
readonly DataContext _dbContext; readonly DataContext _dbContext;
readonly IValidator<ProductModel> _validator;
readonly IStringLocalizer<ProductController> _localizer;
/// <summary> /// <summary>
/// ///
@@ -33,13 +37,16 @@ namespace Atomx.Admin.Controllers
/// <param name="idCreator"></param> /// <param name="idCreator"></param>
/// <param name="adminService"></param> /// <param name="adminService"></param>
/// <param name="mapper"></param> /// <param name="mapper"></param>
public ProductController(ILogger<ProductController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext) public ProductController(ILogger<ProductController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext,
IValidator<ProductModel> validator, IStringLocalizer<ProductController> localizer )
{ {
_logger = logger; _logger = logger;
_identityService = identityService; _identityService = identityService;
_idCreator = idCreator; _idCreator = idCreator;
_mapper = mapper; _mapper = mapper;
_dbContext = dataContext; _dbContext = dataContext;
_validator = validator;
_localizer = localizer;
} }
/// <summary> /// <summary>
@@ -338,8 +345,7 @@ namespace Atomx.Admin.Controllers
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new ProductModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty; var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty;
@@ -538,8 +544,7 @@ namespace Atomx.Admin.Controllers
Console.WriteLine(model.ToJson()); Console.WriteLine(model.ToJson());
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new ProductModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty; var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty;

View File

@@ -6,9 +6,11 @@ using Atomx.Common.Models;
using Atomx.Data; using Atomx.Data;
using Atomx.Data.CacheServices; using Atomx.Data.CacheServices;
using Atomx.Data.Services; using Atomx.Data.Services;
using FluentValidation;
using MapsterMapper; using MapsterMapper;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Atomx.Admin.Controllers namespace Atomx.Admin.Controllers
{ {
@@ -22,7 +24,8 @@ namespace Atomx.Admin.Controllers
readonly IMapper _mapper; readonly IMapper _mapper;
readonly DataContext _dbContext; readonly DataContext _dbContext;
readonly ICacheService _cacheService; readonly ICacheService _cacheService;
private readonly IValidator<SiteAppModel> _validator;
private readonly IStringLocalizer<SiteAppController> _localizer;
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
@@ -31,7 +34,8 @@ namespace Atomx.Admin.Controllers
/// <param name="idCreator"></param> /// <param name="idCreator"></param>
/// <param name="messageTemplateService"></param> /// <param name="messageTemplateService"></param>
/// <param name="mapper"></param> /// <param name="mapper"></param>
public SiteAppController(ILogger<SiteAppController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext, ICacheService cacheService) public SiteAppController(ILogger<SiteAppController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext, ICacheService cacheService,
IValidator<SiteAppModel> validator, IStringLocalizer<SiteAppController> localizer)
{ {
_logger = logger; _logger = logger;
_identityService = identityService; _identityService = identityService;
@@ -39,6 +43,8 @@ namespace Atomx.Admin.Controllers
_mapper = mapper; _mapper = mapper;
_dbContext = dataContext; _dbContext = dataContext;
_cacheService = cacheService; _cacheService = cacheService;
_validator = validator;
_localizer = localizer;
} }
@@ -115,8 +121,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Add(SiteAppModel model) public IActionResult Add(SiteAppModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new SiteAppModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;
@@ -151,8 +156,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Edit(SiteAppModel model) public IActionResult Edit(SiteAppModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new SiteAppModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;

View File

@@ -5,10 +5,12 @@ using Atomx.Common.Entities;
using Atomx.Common.Models; using Atomx.Common.Models;
using Atomx.Data; using Atomx.Data;
using Atomx.Data.Services; using Atomx.Data.Services;
using FluentValidation;
using Mapster; using Mapster;
using MapsterMapper; using MapsterMapper;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Atomx.Admin.Controllers namespace Atomx.Admin.Controllers
{ {
@@ -21,6 +23,8 @@ namespace Atomx.Admin.Controllers
readonly IIdCreatorService _idCreator; readonly IIdCreatorService _idCreator;
readonly IMapper _mapper; readonly IMapper _mapper;
readonly DataContext _dbContext; readonly DataContext _dbContext;
private readonly IValidator<SpecificationAttributeModel> _validator;
private readonly IStringLocalizer<SpecificationAttributeController> _localizer;
/// <summary> /// <summary>
/// ///
@@ -30,13 +34,15 @@ namespace Atomx.Admin.Controllers
/// <param name="idCreator"></param> /// <param name="idCreator"></param>
/// <param name="adminService"></param> /// <param name="adminService"></param>
/// <param name="mapper"></param> /// <param name="mapper"></param>
public SpecificationAttributeController(ILogger<SpecificationAttributeController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext) public SpecificationAttributeController(ILogger<SpecificationAttributeController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext, IValidator<SpecificationAttributeModel> validator, IStringLocalizer<SpecificationAttributeController> localizer)
{ {
_logger = logger; _logger = logger;
_identityService = identityService; _identityService = identityService;
_idCreator = idCreator; _idCreator = idCreator;
_mapper = mapper; _mapper = mapper;
_dbContext = dataContext; _dbContext = dataContext;
_validator = validator;
_localizer = localizer;
} }
/// <summary> /// <summary>
@@ -125,8 +131,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Add(SpecificationAttributeModel model) public IActionResult Add(SpecificationAttributeModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new SpecificationAttributeModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty; var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty;
@@ -169,8 +174,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Edit(SpecificationAttributeModel model) public IActionResult Edit(SpecificationAttributeModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new SpecificationAttributeModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;

View File

@@ -6,9 +6,11 @@ using Atomx.Common.Entities;
using Atomx.Common.Models; using Atomx.Common.Models;
using Atomx.Data; using Atomx.Data;
using Atomx.Data.Services; using Atomx.Data.Services;
using FluentValidation;
using MapsterMapper; using MapsterMapper;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Atomx.Admin.Controllers namespace Atomx.Admin.Controllers
{ {
@@ -21,6 +23,8 @@ namespace Atomx.Admin.Controllers
readonly IIdCreatorService _idCreator; readonly IIdCreatorService _idCreator;
readonly IMapper _mapper; readonly IMapper _mapper;
readonly DataContext _dbContext; readonly DataContext _dbContext;
private readonly IValidator<SpecificationAttributeOptionModel> _validator;
private readonly IStringLocalizer<SpecificationAttributeOptionController> _localizer;
/// <summary> /// <summary>
/// ///
@@ -30,13 +34,16 @@ namespace Atomx.Admin.Controllers
/// <param name="idCreator"></param> /// <param name="idCreator"></param>
/// <param name="adminService"></param> /// <param name="adminService"></param>
/// <param name="mapper"></param> /// <param name="mapper"></param>
public SpecificationAttributeOptionController(ILogger<SpecificationAttributeOptionController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext) public SpecificationAttributeOptionController(ILogger<SpecificationAttributeOptionController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext,
IValidator<SpecificationAttributeOptionModel> validator, IStringLocalizer<SpecificationAttributeOptionController> localizer)
{ {
_logger = logger; _logger = logger;
_identityService = identityService; _identityService = identityService;
_idCreator = idCreator; _idCreator = idCreator;
_mapper = mapper; _mapper = mapper;
_dbContext = dataContext; _dbContext = dataContext;
_validator = validator;
_localizer = localizer;
} }
/// <summary> /// <summary>
@@ -115,8 +122,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Add(SpecificationAttributeOptionModel model) public IActionResult Add(SpecificationAttributeOptionModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new SpecificationAttributeOptionModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty; var message = validation.Errors.FirstOrDefault()?.ErrorMessage ?? string.Empty;
@@ -159,8 +165,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Edit(SpecificationAttributeOptionModel model) public IActionResult Edit(SpecificationAttributeOptionModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new SpecificationAttributeOptionModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;

View File

@@ -5,9 +5,11 @@ using Atomx.Common.Entities;
using Atomx.Common.Models; using Atomx.Common.Models;
using Atomx.Data; using Atomx.Data;
using Atomx.Data.Services; using Atomx.Data.Services;
using FluentValidation;
using MapsterMapper; using MapsterMapper;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Localization;
namespace Atomx.Admin.Controllers namespace Atomx.Admin.Controllers
{ {
@@ -20,6 +22,8 @@ namespace Atomx.Admin.Controllers
readonly IIdCreatorService _idCreator; readonly IIdCreatorService _idCreator;
readonly IMapper _mapper; readonly IMapper _mapper;
readonly DataContext _dbContext; readonly DataContext _dbContext;
readonly IValidator<UploadFileModel> _validator;
readonly IStringLocalizer<UploadFileController> _localizer;
/// <summary> /// <summary>
/// ///
@@ -29,7 +33,8 @@ namespace Atomx.Admin.Controllers
/// <param name="idCreator"></param> /// <param name="idCreator"></param>
/// <param name="adminService"></param> /// <param name="adminService"></param>
/// <param name="mapper"></param> /// <param name="mapper"></param>
public UploadFileController(ILogger<UploadFileController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext) public UploadFileController(ILogger<UploadFileController> logger, IIdentityService identityService, IIdCreatorService idCreator, IMapper mapper, DataContext dataContext,
IValidator<StateProvinceModel> validator, IStringLocalizer<StateProvinceController> localizer)
{ {
_logger = logger; _logger = logger;
_identityService = identityService; _identityService = identityService;
@@ -111,8 +116,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Add(UploadFileModel model) public IActionResult Add(UploadFileModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new UploadFileModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;
@@ -147,8 +151,7 @@ namespace Atomx.Admin.Controllers
public IActionResult Edit(UploadFileModel model) public IActionResult Edit(UploadFileModel model)
{ {
var result = new ApiResult<string>(); var result = new ApiResult<string>();
var validator = new UploadFileModelValidator(); var validation = _validator.Validate(model);
var validation = validator.Validate(model);
if (!validation.IsValid) if (!validation.IsValid)
{ {
var message = validation.Errors.FirstOrDefault()?.ErrorMessage; var message = validation.Errors.FirstOrDefault()?.ErrorMessage;

View File

@@ -83,7 +83,6 @@ builder.Services.AddScoped<PersistentAuthenticationStateProvider>();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
builder.Services.AddScoped<IIdCreatorService, IdCreatorService>(); builder.Services.AddScoped<IIdCreatorService, IdCreatorService>();
builder.Services.AddScoped<IIdentityService, IdentityService>(); builder.Services.AddScoped<IIdentityService, IdentityService>();
builder.Services.AddScoped<LocalizationFile, LocalizationFile>();
builder.Services.AddScoped<AuthHeaderHandler>(); builder.Services.AddScoped<AuthHeaderHandler>();