|
@@ -15,9 +15,9 @@ namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
|
|
{
|
|
{
|
|
public class OfflineExamAnalysisValidator : BaseValidator<ExamOfflineExamAnalysis>
|
|
public class OfflineExamAnalysisValidator : BaseValidator<ExamOfflineExamAnalysis>
|
|
{
|
|
{
|
|
- private readonly IExamManageRepository _examManageRepository;
|
|
|
|
|
|
+ private readonly IOfflineExamAnalysisRepository _offlineExamAnalysisRepository;
|
|
|
|
|
|
- public OfflineExamAnalysisValidator()
|
|
|
|
|
|
+ public OfflineExamAnalysisValidator(IOfflineExamAnalysisRepository offlineExamAnalysisRepository)
|
|
{
|
|
{
|
|
RuleSet(ValidatorTypeConstants.Create, () =>
|
|
RuleSet(ValidatorTypeConstants.Create, () =>
|
|
{
|
|
{
|
|
@@ -32,6 +32,8 @@ namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
|
|
|
|
|
|
ValidateRuleWithModify();
|
|
ValidateRuleWithModify();
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+ this._offlineExamAnalysisRepository = offlineExamAnalysisRepository;
|
|
}
|
|
}
|
|
|
|
|
|
protected override void BaseValidateRule()
|
|
protected override void BaseValidateRule()
|
|
@@ -40,10 +42,13 @@ namespace Hotline.Repository.SqlSugar.Exam.Validators.ExamManages
|
|
RuleFor(m => m.UserName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.UserName))));
|
|
RuleFor(m => m.UserName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.UserName))));
|
|
RuleFor(m => m.DepartmentName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.DepartmentName))));
|
|
RuleFor(m => m.DepartmentName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.DepartmentName))));
|
|
RuleFor(m => m.ExamName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.ExamName))));
|
|
RuleFor(m => m.ExamName).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.ExamName))));
|
|
|
|
+ RuleFor(m => m.StartTime).Must((c,v)=>v!=DateTime.MinValue).WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.StartTime))));
|
|
|
|
+ RuleFor(m => m.EndTime).Must((c, v) => v != DateTime.MinValue).WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.EndTime))));
|
|
RuleFor(m => m.TotalScore).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.TotalScore))));
|
|
RuleFor(m => m.TotalScore).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.TotalScore))));
|
|
RuleFor(m => m.Score).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.Score))));
|
|
RuleFor(m => m.Score).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.Score))));
|
|
RuleFor(m => m.CutoffScore).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.CutoffScore))));
|
|
RuleFor(m => m.CutoffScore).NotEmpty().WithMessage(x => string.Format(ExamErrorMessage.IsRequired, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.CutoffScore))));
|
|
RuleFor(m => m.TotalScore).Must((c, v) => c.Score <= v).WithMessage(x => string.Format(ExamErrorMessage.Greater, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.Score)),x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.TotalScore))));
|
|
RuleFor(m => m.TotalScore).Must((c, v) => c.Score <= v).WithMessage(x => string.Format(ExamErrorMessage.Greater, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.Score)),x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.TotalScore))));
|
|
|
|
+ RuleFor(m => m.UserName).Must((c,v)=> !_offlineExamAnalysisRepository.Queryable().Any(x=>x.UserName == v && x.ExamName == c.ExamName && x.StartTime == c.StartTime)).WithMessage(x => string.Format(ExamErrorMessage.IsRepeat, x.GetType().GetDescription(nameof(ExamOfflineExamAnalysis.UserName))));
|
|
}
|
|
}
|
|
|
|
|
|
protected override void ValidateRuleWithAdd()
|
|
protected override void ValidateRuleWithAdd()
|