国际化修改

Uat_Study
he 2023-03-29 14:01:01 +08:00
parent cb2aa0cfa4
commit f04d20f57d
10 changed files with 85 additions and 52 deletions

View File

@ -212,11 +212,12 @@ namespace IRaCIS.Core.API.Controllers
private readonly IRepository _repository;
private readonly IEasyCachingProvider _provider;
private readonly QCCommon _qCCommon;
public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator, IEasyCachingProvider provider,
QCCommon qCCommon,
IRepository repository)
{
_qCCommon = qCCommon;
_provider = provider;
_hostEnvironment = hostEnvironment;
_mediator = mediator;
@ -439,7 +440,7 @@ namespace IRaCIS.Core.API.Controllers
public async Task<IResponseOutput> UploadVisitClinicalData(Guid subjectVisitId)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
var sv = _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefault().IfNullThrowException();
await FileUploadAsync(async (fileName) =>
@ -677,7 +678,7 @@ namespace IRaCIS.Core.API.Controllers
[FromServices] IRepository<NoneDicomStudy> _noneDicomStudyRepository, [FromServices] IRepository<StudyMonitor> _studyMonitorRepository)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
var sv = (await _repository.Where<SubjectVisit>(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException();

View File

@ -258,7 +258,7 @@
"User_EmailDup": "A user with the same email already exists in this user type.",
"User_NewOldPwdSame": "The new password is the same as the old one.",
"User_OldPwdInvalid": "Failed to verify the old password. ",
//UserService
"User_LegalEmail": "Please input a legal email",
"User_VerificationCodeError": "The verification code is wrong.",
"User_VerificationCodeExpired": "The verification code has expired.",
"User_CreateFailed": "Check the email address or contact maintainers. The email fails to be sent and the account cannot be created",
@ -270,6 +270,7 @@
"UserType_InUse": "User already exists in that user type, and it cannot be deleted.",
// ------------------------------------------------------------QC--------------------------------------------------------------------
//QCCommon
"QCCommon_CannotOperate": "CRC has submitted the image and it cannot be operated.",

View File

@ -241,7 +241,7 @@
"User_EmailDup": "该用户类型中已存在具有相同邮箱的用户。",
"User_NewOldPwdSame": "新密码与旧密码相同。",
"User_OldPwdInvalid": "旧密码验证失败。",
//UserService
"User_LegalEmail": "请输入合法的电子邮件",
"User_VerificationCodeError": "验证码错误。",
"User_VerificationCodeExpired": "验证码已经过期。",
"User_CreateFailed": "请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功",
@ -252,6 +252,7 @@
//UserTypeService
"UserType_InUse": "该用户类型中已存在用户,不能删除。",
// ------------------------------------------------------------QC--------------------------------------------------------------------
//QCCommon
"QCCommon_CannotOperate": "CRC 已提交影像,不能进行操作。",

View File

@ -27,7 +27,8 @@ namespace IRaCIS.Application.Services
var exp = new EntityVerifyExp<Menu>()
{
VerifyExp = u => u.ParentId == menuAddOrUpdateModel.ParentId && u.MenuName == menuAddOrUpdateModel.MenuName,
VerifyMsg = "该父节点下已经存在同名的子节点。"
//---该父节点下已经存在同名的子节点。
VerifyMsg = _localizer["Menu_ParentDupChild"]
};
var menu = await _repository.InsertOrUpdateAsync<Menu, MenuCommand>(menuAddOrUpdateModel, true, exp);
@ -91,7 +92,8 @@ namespace IRaCIS.Application.Services
{
if (await menuRepository.AnyAsync(t => t.ParentId == menuId))
{
return ResponseOutput.NotOk("该节点存在子节点,请在删除子节点后,再删除该节点。");
//---该节点存在子节点,请在删除子节点后,再删除该节点。
return ResponseOutput.NotOk(_localizer["Menu_ChildExist"]);
}
var success =await menuRepository.BatchDeleteNoTrackingAsync(u => u.Id == menuId);

View File

@ -49,7 +49,8 @@ namespace IRaCIS.Application.Services
{
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => t.UserName == userName))
{
throw new BusinessValidationFailedException("用户名已经存在。");
//---用户名已经存在。
throw new BusinessValidationFailedException(_localizer["User_UsernameExist"]);
}
}
@ -57,7 +58,8 @@ namespace IRaCIS.Application.Services
{
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.Phone == phone && t.UserTypeId == userTypeId)))
{
throw new BusinessValidationFailedException("该用户类型中已存在具有相同的电话的用户。");
//---该用户类型中已存在具有相同的电话的用户。
throw new BusinessValidationFailedException(_localizer["User_PhoneDup"]);
}
}
@ -66,7 +68,8 @@ namespace IRaCIS.Application.Services
{
if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.EMail == email && t.UserTypeId == userTypeId)))
{
throw new BusinessValidationFailedException("该用户类型中已存在具有相同邮箱的用户。");
//---该用户类型中已存在具有相同邮箱的用户。
throw new BusinessValidationFailedException(_localizer["User_EmailDup"]);
}
}
@ -79,7 +82,8 @@ namespace IRaCIS.Application.Services
if (oldPwd != null && oldPwd == newPwd)
{
throw new BusinessValidationFailedException("新密码与旧密码相同。");
//---新密码与旧密码相同。
throw new BusinessValidationFailedException(_localizer["User_NewOldPwdSame"]);
}
@ -87,12 +91,14 @@ namespace IRaCIS.Application.Services
if (oldPwd != null && dbUser.Password != oldPwd)
{
throw new BusinessValidationFailedException("旧密码验证失败。");
//---旧密码验证失败。
throw new BusinessValidationFailedException(_localizer["User_OldPwdInvalid"]);
}
if (dbUser.Password == newPwd)
{
throw new BusinessValidationFailedException("新密码与旧密码相同。");
//---新密码与旧密码相同。
throw new BusinessValidationFailedException(_localizer["User_NewOldPwdSame"]);
}
@ -113,7 +119,8 @@ namespace IRaCIS.Application.Services
//检查手机或者邮箱是否有效
if (!Regex.IsMatch(email, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"))
{
return ResponseOutput.NotOk("Please input a legal email");
//---Please input a legal email
return ResponseOutput.NotOk(_localizer["User_LegalEmail"]);
}
@ -140,7 +147,8 @@ namespace IRaCIS.Application.Services
if (verificationRecord == null)
{
return ResponseOutput.NotOk("验证码错误。");
//---验证码错误。
return ResponseOutput.NotOk(_localizer["User_VerificationCodeError"]);
}
else
@ -148,7 +156,8 @@ namespace IRaCIS.Application.Services
//检查验证码是否失效
if (verificationRecord.ExpirationTime < DateTime.Now)
{
return ResponseOutput.NotOk("验证码已经过期。");
//---验证码已经过期。
return ResponseOutput.NotOk(_localizer["User_VerificationCodeExpired"]);
}
else //验证码正确 并且 没有超时
@ -267,7 +276,8 @@ namespace IRaCIS.Application.Services
}
catch (Exception ex)
{
throw new BusinessValidationFailedException("请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功");
//---请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功
throw new BusinessValidationFailedException(_localizer["User_CreateFailed"]);
}
@ -296,7 +306,8 @@ namespace IRaCIS.Application.Services
if (!Regex.IsMatch(email, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$"))
{
return ResponseOutput.NotOk("请输入一个正确的邮箱。");
//---请输入一个正确的邮箱。
return ResponseOutput.NotOk(_localizer["User_InvalidEmail"]);
}
@ -305,7 +316,8 @@ namespace IRaCIS.Application.Services
if (!exist)
{
return ResponseOutput.NotOk("邮箱错误。");
//---邮箱错误。
return ResponseOutput.NotOk(_localizer["User_EmailError"]);
}
@ -337,7 +349,8 @@ namespace IRaCIS.Application.Services
if (verificationRecord == null)
{
throw new BusinessValidationFailedException("验证码错误。");
//---验证码错误。
throw new BusinessValidationFailedException(_localizer["User_VerificationCodeError"]);
}
else
{
@ -345,7 +358,8 @@ namespace IRaCIS.Application.Services
if (verificationRecord.ExpirationTime < DateTime.Now)
{
throw new BusinessValidationFailedException("验证码已经过期。");
//---验证码已经过期。
throw new BusinessValidationFailedException(_localizer["User_VerificationCodeExpired"]);
}
else //验证码正确 并且 没有超时
{
@ -561,7 +575,8 @@ namespace IRaCIS.Application.Services
{
if (await _userTrialRepository.AnyAsync(t => t.Id == userId))
{
return ResponseOutput.NotOk("该用户已经参加项目,不能够删除。");
//---该用户已经参加项目,不能够删除。
return ResponseOutput.NotOk(_localizer["User_InProject"]);
}
var success = await _userRepository.BatchDeleteNoTrackingAsync(t => t.Id == userId);
@ -625,7 +640,8 @@ namespace IRaCIS.Application.Services
if (loginUser.Status == 0)
{
return ResponseOutput.NotOk("该用户已经被禁用。", new LoginReturnDTO());
//---该用户已经被禁用。
return ResponseOutput.NotOk(_localizer["User_Disabled"], new LoginReturnDTO());
}
userLoginReturnModel.BasicInfo = loginUser;

View File

@ -1,4 +1,4 @@
//--------------------------------------------------------------------
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2021-11-03 09:38:11
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
@ -79,7 +79,8 @@ namespace IRaCIS.Core.Application.Contracts
{
if ( await _repository.AnyAsync<User>(t => t.UserTypeId == userTypeId))
{
return ResponseOutput.NotOk("该用户类型中已存在用户,不能删除");
//---该用户类型中已存在用户,不能删除
return ResponseOutput.NotOk(_localizer["UserType_InUse"]);
}
var success = await userTypeServiceRepository.BatchDeleteNoTrackingAsync(t => t.Id == userTypeId);

View File

@ -1,4 +1,4 @@
//--------------------------------------------------------------------
//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2021-11-22 11:29:44
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
@ -19,15 +19,17 @@ namespace IRaCIS.Core.Application.Contracts
private readonly IRepository<PreviousSurgery> _previousSurgeryRepository;
private readonly IRepository<PreviousPDF> _previousPdfRepository;
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
private readonly QCCommon _qCCommon;
public ClinicalDataService(IRepository<PreviousHistory> previousHistoryRepository,
public ClinicalDataService(IRepository<PreviousHistory> previousHistoryRepository,
IRepository<PreviousOther> previousOtherRepository,
IRepository<PreviousSurgery> previousSurgeryRepository,
IRepository<PreviousPDF> previousPDFRepository,
IRepository<SubjectVisit> subjectVisitRepository
IRepository<SubjectVisit> subjectVisitRepository,
QCCommon qCCommon
)
{
_qCCommon = qCCommon;
_previousOtherRepository = previousOtherRepository;
_previousHistoryRepository = previousHistoryRepository;
_previousSurgeryRepository = previousSurgeryRepository;
@ -96,7 +98,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpPost("{trialId:guid}")]
public async Task<IResponseOutput<Guid>> AddOrUpdatePreviousHistory(PreviousHistoryAddOrEdit addOrEditPreviousHistory)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousHistory.SubjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousHistory.SubjectVisitId);
var entity = await _previousHistoryRepository.InsertOrUpdateAsync(addOrEditPreviousHistory, true);
return ResponseOutput.Ok(entity.Id);
@ -106,7 +108,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousHistoryId:guid}")]
public async Task<IResponseOutput> DeletePreviousHistory(Guid previousHistoryId,Guid subjectVisitId)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _previousHistoryRepository.DeleteFromQueryAsync(t => t.Id == previousHistoryId,true);
return ResponseOutput.Ok();
}
@ -123,7 +125,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpPost("{trialId:guid}")]
public async Task<IResponseOutput<Guid>> AddOrUpdatePreviousOther(PreviousOtherAddOrEdit addOrEditPreviousOther)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousOther.SubjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousOther.SubjectVisitId);
var entity = await _previousOtherRepository.InsertOrUpdateAsync(addOrEditPreviousOther, true);
return ResponseOutput.Ok(entity.Id);
@ -133,7 +135,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousOtherId:guid}")]
public async Task<IResponseOutput> DeletePreviousOther(Guid previousOtherId, Guid subjectVisitId)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _previousOtherRepository.DeleteFromQueryAsync(t => t.Id == previousOtherId,true);
return ResponseOutput.Ok();
@ -151,7 +153,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpPost("{trialId:guid}")]
public async Task<IResponseOutput<Guid>> AddOrUpdatePreviousSurgery(PreviousSurgeryAddOrEdit addOrEditPreviousSurgery)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousSurgery.SubjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousSurgery.SubjectVisitId);
var entity = await _previousSurgeryRepository.InsertOrUpdateAsync(addOrEditPreviousSurgery, true);
return ResponseOutput.Ok(entity.Id);
}
@ -160,7 +162,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousSurgeryId:guid}")]
public async Task<IResponseOutput> DeletePreviousSurgery(Guid previousSurgeryId, Guid subjectVisitId)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
var success = await _previousSurgeryRepository.DeleteFromQueryAsync(t => t.Id == previousSurgeryId,true);
return ResponseOutput.Ok();
}
@ -177,7 +179,7 @@ namespace IRaCIS.Core.Application.Contracts
public async Task<IResponseOutput> AddOrUpdatePreviousPDF(PreviousPDFAddOrEdit addOrEditPreviousPDF)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousPDF.SubjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousPDF.SubjectVisitId);
var entity = await _previousPdfRepository.InsertOrUpdateAsync(addOrEditPreviousPDF, true);
return ResponseOutput.Ok(entity.Id);
@ -186,7 +188,7 @@ namespace IRaCIS.Core.Application.Contracts
[HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousPDFId:guid}")]
public async Task<IResponseOutput> DeletePreviousPDF(Guid previousPDFId, Guid subjectVisitId)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _previousPdfRepository.DeleteFromQueryAsync(t => t.Id == previousPDFId,true);
return ResponseOutput.Ok();

View File

@ -21,12 +21,14 @@ namespace IRaCIS.Core.Application.Contracts
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository;
private readonly AsyncLock _mutex = new AsyncLock();
private readonly QCCommon _qCCommon;
public NoneDicomStudyService(IRepository<NoneDicomStudy> noneDicomStudyRepository,
QCCommon qCCommon,
IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository)
{
_qCCommon = qCCommon;
_noneDicomStudyRepository = noneDicomStudyRepository;
_noneDicomStudyFileRepository = noneDicomStudyFileRepository;
@ -51,11 +53,11 @@ namespace IRaCIS.Core.Application.Contracts
public async Task<IResponseOutput<NoneDicomStudyAddReturnDto>> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy)
{
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditNoneDicomStudy.SubjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditNoneDicomStudy.SubjectVisitId);
if (_repository.Where<Trial>(t => t.Id == addOrEditNoneDicomStudy.TrialId).Any(t => t.IsVerifyVisitImageDate==true))
{
await QCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate);
await _qCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate);
}
@ -99,7 +101,7 @@ namespace IRaCIS.Core.Application.Contracts
//提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _noneDicomStudyRepository.DeleteFromQueryAsync(noneDicomStudyId);
@ -119,7 +121,7 @@ namespace IRaCIS.Core.Application.Contracts
public async Task<IResponseOutput> DeleteNoneDicomStudyFile(Guid noneDicomStudyFileId, Guid subjectVisitId)
{
//提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除
await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId);
var noneDicomStudyFile = await _noneDicomStudyFileRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyFileId);

View File

@ -1,11 +1,15 @@
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using Microsoft.Extensions.Localization;
using System.Linq.Expressions;
namespace IRaCIS.Core.Application.Service
{
public static class QCCommon
public class QCCommon: BaseService
{
/// <summary>
/// 验证CRC 是否已提交 已提交 就不允许进行任何操作如果是IQC 那么还验证是否是当前任务领取人
/// </summary>
@ -14,7 +18,7 @@ namespace IRaCIS.Core.Application.Service
/// <param name="subjectVisitId"></param>
/// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception>
public static async Task VerifyIsCRCSubmmitAsync(IRepository _repository, IUserInfo _userInfo, Guid? subjectVisitId = null)
public async Task VerifyIsCRCSubmmitAsync(IRepository _repository, IUserInfo _userInfo, Guid? subjectVisitId = null)
{
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator)
{
@ -24,7 +28,8 @@ namespace IRaCIS.Core.Application.Service
if (await _repository.AnyAsync<SubjectVisit>(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted &&
(!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload))))
{
throw new BusinessValidationFailedException("CRC 已提交影像,不能进行操作。");
//---CRC 已提交影像,不能进行操作。
throw new BusinessValidationFailedException(_localizer["QCCommon_CannotOperate"]);
}
}
}
@ -40,22 +45,22 @@ namespace IRaCIS.Core.Application.Service
}
public static async Task VerifyIsCanQCAsync(IRepository _repository, IUserInfo _userInfo, SubjectVisit? subjectVisit = null, Guid? subjectVisitId = null)
public async Task VerifyIsCanQCAsync(IRepository _repository, IUserInfo _userInfo, SubjectVisit? subjectVisit = null, Guid? subjectVisitId = null)
{
if (subjectVisitId != null)
{
subjectVisit = (await _repository.FirstOrDefaultAsync<SubjectVisit>(t => t.Id == subjectVisitId)).IfNullThrowException();
}
if (subjectVisit!.CurrentActionUserId != _userInfo.Id)
{
throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!");
//---您不是该质控任务当前领取人,没有操作权限!
throw new BusinessValidationFailedException(_localizer["QCCommon_NoPermission"]);
}
}
public static async Task VerifyStudyImageDataAsync(IRepository _repository, Guid subjectId, Guid subjectVisitId, DateTime imageDate)
public async Task VerifyStudyImageDataAsync(IRepository _repository, Guid subjectId, Guid subjectVisitId, DateTime imageDate)
{
var visitList = await _repository.Where<SubjectVisit>(t => t.SubjectId == subjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync();
@ -68,7 +73,8 @@ namespace IRaCIS.Core.Application.Service
if (before != null && before > imageDate)
{
throw new BusinessValidationFailedException($"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
//当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误
throw new BusinessValidationFailedException(_localizer["QCCommon_CheckTimeEarly", imageDate.ToString("yyyy-MM-dd"), before?.ToString("yyyy-MM-dd")]);
}
@ -77,7 +83,8 @@ namespace IRaCIS.Core.Application.Service
if (after != null && after < imageDate)
{
throw new BusinessValidationFailedException($"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误");
//$"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误"
throw new BusinessValidationFailedException(_localizer["QCCommon_CheckTimeLate", imageDate.ToString("yyyy-MM-dd"), after?.ToString("yyyy-MM-dd")]);
}
}

Binary file not shown.