|
@@ -1,19 +1,13 @@
|
|
|
using DocumentFormat.OpenXml.Office2010.Excel;
|
|
|
-using Exam.Application.Interface.TestPapers;
|
|
|
-using Exam.ExamManages;
|
|
|
using Exam.Infrastructure.Data.Entity;
|
|
|
using Exam.Infrastructure.Data.Interface;
|
|
|
using Exam.Infrastructure.Enums;
|
|
|
using Exam.Infrastructure.Extensions;
|
|
|
-using Exam.Infrastructure.Web.Extensions;
|
|
|
-using Exam.Infrastructure.Web.Utilities;
|
|
|
using Exam.Insfrastructure.Service.Service;
|
|
|
-using Exam.Questions;
|
|
|
using Exam.Repository.Sqlsugar;
|
|
|
using Exam.Repository.Sqlsugar.Repositories;
|
|
|
using Exam.Repository.Sqlsugar.Repositories.TestPapers;
|
|
|
using Exam.Share.ViewResponses.TestPaper;
|
|
|
-using Exam.TestPapers;
|
|
|
using Hotline.Application.Exam.Core.Extensions;
|
|
|
using Hotline.Application.Exam.Extensions;
|
|
|
using Hotline.Application.Exam.Proxy;
|
|
@@ -40,13 +34,22 @@ using Microsoft.Extensions.DependencyInjection;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using SqlSugar;
|
|
|
using System.Collections.Immutable;
|
|
|
+using Hotline.Application.Exam.Core.Utilities;
|
|
|
+using Hotline.Application.Exam.Interface.TestPapers;
|
|
|
+using Hotline.Exams.ExamManages;
|
|
|
+using Hotline.Exams.Questions;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Dependency;
|
|
|
using XF.Domain.Repository;
|
|
|
+using ExamQuestion = Hotline.Exams.Questions.ExamQuestion;
|
|
|
+using ExamQuestionAnswer = Hotline.Exams.Questions.ExamQuestionAnswer;
|
|
|
+using ExamQuestionKnowladge = Hotline.Exams.Questions.ExamQuestionKnowladge;
|
|
|
+using ExamQuestionOptions = Hotline.Exams.Questions.ExamQuestionOptions;
|
|
|
+using ExamQuestionSourceware = Hotline.Exams.Questions.ExamQuestionSourceware;
|
|
|
|
|
|
namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
{
|
|
|
- public class TestPaperService : ApiService<TestPaper, AddTestPaperDto, UpdateTestPaperDto, HotlineDbContext>, ITestPaperService, IScopeDependency
|
|
|
+ public class TestPaperService : ApiService<ExamTestPaper, AddTestPaperDto, UpdateTestPaperDto, HotlineDbContext>, ITestPaperService, IScopeDependency
|
|
|
{
|
|
|
private readonly ITestPaperRepository _repository;
|
|
|
private readonly ITestPaperItemRepository _testPaperItemRepository;
|
|
@@ -233,23 +236,23 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
await base.DeleteAsync(entityQueryRequest, cancellationToken);
|
|
|
|
|
|
- var tempEntityQueryRequest = ExpressionableUtility.CreateExpression<TestPaperItem>()
|
|
|
+ var tempEntityQueryRequest = ExpressionableUtility.CreateExpression<ExamTestPaperItem>()
|
|
|
.AndIF(entityQueryRequest.Id.IsNotNullOrEmpty(), x => x.TestPaperId == entityQueryRequest.Id)
|
|
|
- .AndIF(entityQueryRequest.Ids.IsNotNullOrEmpty(), x => entityQueryRequest.Ids.Contains(x.TestPaperId)).ToEntityQueryRequest<TestPaperItem>();
|
|
|
+ .AndIF(entityQueryRequest.Ids.IsNotNullOrEmpty(), x => entityQueryRequest.Ids.Contains(x.TestPaperId)).ToEntityQueryRequest<ExamTestPaperItem>();
|
|
|
|
|
|
await DeleteTestPaperItems(tempEntityQueryRequest, cancellationToken);
|
|
|
|
|
|
- tempEntityQueryRequest = ExpressionableUtility.CreateExpression<TestPaperRule>()
|
|
|
+ tempEntityQueryRequest = ExpressionableUtility.CreateExpression<ExamTestPaperRule>()
|
|
|
.AndIF(entityQueryRequest.Id.IsNotNullOrEmpty(), x => x.TestPaperId == entityQueryRequest.Id)
|
|
|
- .AndIF(entityQueryRequest.Ids.IsNotNullOrEmpty(), x => entityQueryRequest.Ids.Contains(x.TestPaperId)).ToEntityQueryRequest<TestPaperRule>();
|
|
|
+ .AndIF(entityQueryRequest.Ids.IsNotNullOrEmpty(), x => entityQueryRequest.Ids.Contains(x.TestPaperId)).ToEntityQueryRequest<ExamTestPaperRule>();
|
|
|
|
|
|
|
|
|
await DeleteTestPaperRules(tempEntityQueryRequest, cancellationToken);
|
|
|
|
|
|
|
|
|
var ids = testPaperRuleTags.Select(x => x.Id).ToList();
|
|
|
- tempEntityQueryRequest = ExpressionableUtility.CreateExpression<TestPaperRuleTag>()
|
|
|
- .AndIF(ids.IsNotNull(), x => ids.Contains(x.Id)).ToEntityQueryRequest<TestPaperRuleTag>();
|
|
|
+ tempEntityQueryRequest = ExpressionableUtility.CreateExpression<ExamTestPaperRuleTag>()
|
|
|
+ .AndIF(ids.IsNotNull(), x => ids.Contains(x.Id)).ToEntityQueryRequest<ExamTestPaperRuleTag>();
|
|
|
|
|
|
await DeleteTestPaperRuleTags(tempEntityQueryRequest, cancellationToken);
|
|
|
}
|
|
@@ -328,8 +331,8 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
private async Task<List<SimpleQuestionViewResponse>> GetQuestions(TestPaperQuestionRequest testPaperQuestionRequest)
|
|
|
{
|
|
|
- var questionRepository = new ExamRepository<Question>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var questionTagRepository = new ExamRepository<QuestionTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionRepository = new ExamRepository<ExamQuestion>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionTagRepository = new ExamRepository<ExamQuestionTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
var expression = testPaperQuestionRequest.GetExpression();
|
|
|
var questionExpression = testPaperQuestionRequest.GetQuestionExpression();
|
|
@@ -353,10 +356,10 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
return questionDtos;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<Question>> GetQuestions(GenerateTestPaperRequest generateTestPaperRequest)
|
|
|
+ private async Task<List<ExamQuestion>> GetQuestions(GenerateTestPaperRequest generateTestPaperRequest)
|
|
|
{
|
|
|
- var questionRepository = new ExamRepository<Question>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var questionTagRepository = new ExamRepository<QuestionTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionRepository = new ExamRepository<ExamQuestion>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionTagRepository = new ExamRepository<ExamQuestionTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
var testPaperRuleTable = _testPaperRuleRepository.Queryable().Where(x => x.TestPaperId == generateTestPaperRequest.TestPaperId);
|
|
|
var testPaperTagTable = _testPaperRuleTagRepository.Queryable();
|
|
|
var questionTagTable = questionTagRepository.Queryable();
|
|
@@ -386,8 +389,8 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
var expression = tagQuestionCountRequest.GetExpression();
|
|
|
var questionExpression = tagQuestionCountRequest.GetQuestionExpression();
|
|
|
|
|
|
- var tagQuestionRepository = new ExamRepository<QuestionTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var quesitonRepository = new ExamRepository<Question>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var tagQuestionRepository = new ExamRepository<ExamQuestionTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var quesitonRepository = new ExamRepository<ExamQuestion>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
var tagQuestionTable = tagQuestionRepository.Queryable().Where(expression);
|
|
|
var questionTable = quesitonRepository.Queryable().Where(questionExpression);
|
|
@@ -432,7 +435,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
}
|
|
|
|
|
|
|
|
|
- private async Task<List<TestPaperItemOptions>> ModifyTestPaperItemOptions(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemOptions>> ModifyTestPaperItemOptions(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
@@ -440,7 +443,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var entityQueryRequest = new EntityQueryRequest
|
|
|
{
|
|
|
- Expression = ExpressionableUtility.CreateExpression<TestPaperItemOptions>()
|
|
|
+ Expression = ExpressionableUtility.CreateExpression<ExamTestPaperItemOptions>()
|
|
|
.AndIF(questionIds.IsNotNullOrEmpty(), x => questionIds.Contains(x.QuestionId)).ToExpression()
|
|
|
};
|
|
|
|
|
@@ -455,7 +458,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
await _testPaperItemOptionsRepository.DeleteWithValidateAsync(entityQueryRequest, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItemAnswer>> ModifyTestPaperItemAnswer(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemAnswer>> ModifyTestPaperItemAnswer(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
@@ -463,7 +466,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var entityQueryRequest = new EntityQueryRequest
|
|
|
{
|
|
|
- Expression = ExpressionableUtility.CreateExpression<TestPaperItemAnswer>()
|
|
|
+ Expression = ExpressionableUtility.CreateExpression<ExamTestPaperItemAnswer>()
|
|
|
.AndIF(questionIds.IsNotNullOrEmpty(), x => questionIds.Contains(x.QuestionId)).ToExpression()
|
|
|
};
|
|
|
|
|
@@ -477,7 +480,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
await _testPaperItemAnswerRepository.DeleteWithValidateAsync(entityQueryRequest, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperRule>> AddTestPaperRules(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperRule>> AddTestPaperRules(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperRuleDtos == null) return null;
|
|
|
|
|
@@ -486,7 +489,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
actionRequest.TestPaperRuleDtos.ResolveOperationStatus();
|
|
|
|
|
|
var testPaperRuleDtos = actionRequest.TestPaperRuleDtos.Where(x => x.OperationStatus == EEOperationStatus.Add).ToList();
|
|
|
- var testPaperRules = _mapper.Map<List<TestPaperRule>>(testPaperRuleDtos);
|
|
|
+ var testPaperRules = _mapper.Map<List<ExamTestPaperRule>>(testPaperRuleDtos);
|
|
|
|
|
|
testPaperRules.ToInsert(_sessionContext);
|
|
|
|
|
@@ -497,14 +500,14 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItem>> AddTestPaperItems(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItem>> AddTestPaperItems(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
|
actionRequest.TestPaperItemDtos.ResolveOperationStatus();
|
|
|
|
|
|
var testPaperItemDtos = actionRequest.TestPaperItemDtos.Where(x => x.OperationStatus == EEOperationStatus.Add).ToList();
|
|
|
- var testPaperItems = _mapper.Map<List<TestPaperItem>>(testPaperItemDtos);
|
|
|
+ var testPaperItems = _mapper.Map<List<ExamTestPaperItem>>(testPaperItemDtos);
|
|
|
//试题排序,为后续考试顺序出题做准备
|
|
|
var index = 0;
|
|
|
testPaperItems.ForEach(x =>
|
|
@@ -521,7 +524,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
}
|
|
|
|
|
|
|
|
|
- private async Task<List<TestPaperRuleTag>> AddTestPaperRuleTags(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperRuleTag>> AddTestPaperRuleTags(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperRuleDtos == null) return null;
|
|
|
|
|
@@ -553,7 +556,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
testPaperRuleTagDtos.ResolveOperationStatus();
|
|
|
|
|
|
- var testPaperRuleTags = _mapper.Map<List<TestPaperRuleTag>>(testPaperRuleTagDtos);
|
|
|
+ var testPaperRuleTags = _mapper.Map<List<ExamTestPaperRuleTag>>(testPaperRuleTagDtos);
|
|
|
|
|
|
testPaperRuleTags.ToInsert(_sessionContext);
|
|
|
|
|
@@ -562,7 +565,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
return testPaperRuleTags;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperRule>> ModifyTestPaperRules(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperRule>> ModifyTestPaperRules(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperRuleDtos == null) return null;
|
|
|
|
|
@@ -572,14 +575,14 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
actionRequest.TestPaperRuleDtos.ResolveOperationStatus(all);
|
|
|
|
|
|
- var testPaperRules = new List<TestPaperRule>();
|
|
|
+ var testPaperRules = new List<ExamTestPaperRule>();
|
|
|
|
|
|
testPaperRules.AddRangeExt(await AddTestPaperRules(actionRequest, cancellationToken));
|
|
|
|
|
|
testPaperRules.AddRangeExt(await UpdateTestPaperRules(actionRequest,all, cancellationToken));
|
|
|
|
|
|
- var entityQueryRequest = ExpressionableUtility.CreateExpression<TestPaperRule>()
|
|
|
- .AndIF(actionRequest.Id.IsNotNullOrEmpty(), x => x.TestPaperId == actionRequest.Id).ToEntityQueryRequest<TestPaperRule>();
|
|
|
+ var entityQueryRequest = ExpressionableUtility.CreateExpression<ExamTestPaperRule>()
|
|
|
+ .AndIF(actionRequest.Id.IsNotNullOrEmpty(), x => x.TestPaperId == actionRequest.Id).ToEntityQueryRequest<ExamTestPaperRule>();
|
|
|
|
|
|
await DeleteTestPaperRules(entityQueryRequest, cancellationToken);
|
|
|
|
|
@@ -591,7 +594,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
await _testPaperRuleRepository.DeleteWithValidateAsync(entityQueryRequest, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperRule>> UpdateTestPaperRules(UpdateTestPaperDto actionRequest,List<TestPaperRule> all, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperRule>> UpdateTestPaperRules(UpdateTestPaperDto actionRequest,List<ExamTestPaperRule> all, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperRuleDtos == null) return null;
|
|
|
|
|
@@ -601,7 +604,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var testPaperRules = all.Where(x => ids.Contains(x.TestPaperId)).ToList();
|
|
|
|
|
|
- var entities = new List<TestPaperRule>();
|
|
|
+ var entities = new List<ExamTestPaperRule>();
|
|
|
|
|
|
foreach (var testPaperRuleDto in testPaperRuleDtos)
|
|
|
{
|
|
@@ -620,7 +623,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperRuleTag>> ModifyTestPaperRuleTags(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperRuleTag>> ModifyTestPaperRuleTags(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperRuleDtos == null) return null;
|
|
|
|
|
@@ -630,7 +633,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
actionRequest.TestPaperRuleDtos.ResolveOperationStatus(all);
|
|
|
|
|
|
- var testPaperRuleTags = new List<TestPaperRuleTag>();
|
|
|
+ var testPaperRuleTags = new List<ExamTestPaperRuleTag>();
|
|
|
|
|
|
testPaperRuleTags.AddRangeExt(await AddTestPaperRuleTags(actionRequest, cancellationToken));
|
|
|
|
|
@@ -638,8 +641,8 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var ids = actionRequest.TestPaperRuleDtos.Where(x => x.OperationStatus == EEOperationStatus.Delete).Select(x => x.Id).ToList();
|
|
|
|
|
|
- var entityQueryRequest = ExpressionableUtility.CreateExpression<TestPaperRuleTag>()
|
|
|
- .AndIF(ids.IsNullOrEmpty(), x => ids.Contains(x.TestPaperRuleId)).ToEntityQueryRequest<TestPaperRuleTag>();
|
|
|
+ var entityQueryRequest = ExpressionableUtility.CreateExpression<ExamTestPaperRuleTag>()
|
|
|
+ .AndIF(ids.IsNullOrEmpty(), x => ids.Contains(x.TestPaperRuleId)).ToEntityQueryRequest<ExamTestPaperRuleTag>();
|
|
|
|
|
|
await DeleteTestPaperRuleTags(entityQueryRequest, cancellationToken);
|
|
|
|
|
@@ -651,7 +654,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
await _testPaperRuleTagRepository.DeleteWithValidateAsync(entityQueryRequest, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperRuleTag>> UpdateTestPaperRuleTags(UpdateTestPaperDto actionRequest,List<TestPaperRuleTag> all, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperRuleTag>> UpdateTestPaperRuleTags(UpdateTestPaperDto actionRequest,List<ExamTestPaperRuleTag> all, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperRuleDtos == null) return null;
|
|
|
|
|
@@ -659,13 +662,13 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var testPaperRuleTags = all.Where(x => ruleIds.Contains(x.TestPaperRuleId)).ToList();
|
|
|
|
|
|
- var entities = new List<TestPaperRuleTag>();
|
|
|
+ var entities = new List<ExamTestPaperRuleTag>();
|
|
|
|
|
|
foreach (var testPaperRuleTagDto in actionRequest.TestPaperRuleDtos.SelectMany(x=>x.TestPaperRuleTagDtos))
|
|
|
{
|
|
|
var entity = testPaperRuleTags.FirstOrDefault(x => x.Id == testPaperRuleTagDto.Id);
|
|
|
|
|
|
- entity = _mapper.Map<UpdateTestPaperRuleTagDto, TestPaperRuleTag>(testPaperRuleTagDto,entity);
|
|
|
+ entity = _mapper.Map<UpdateTestPaperRuleTagDto, ExamTestPaperRuleTag>(testPaperRuleTagDto,entity);
|
|
|
}
|
|
|
|
|
|
entities.ToUpdate(_sessionContext);
|
|
@@ -675,7 +678,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
return entities;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItem>> ModifyTestPaperItems(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItem>> ModifyTestPaperItems(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
@@ -683,14 +686,14 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
actionRequest.TestPaperItemDtos.ResolveOperationStatus(all);
|
|
|
|
|
|
- var testPaperItems = new List<TestPaperItem>();
|
|
|
+ var testPaperItems = new List<ExamTestPaperItem>();
|
|
|
|
|
|
testPaperItems.AddRangeExt(await AddTestPaperItems(_addTestPaperDto, cancellationToken));
|
|
|
|
|
|
testPaperItems.AddRangeExt(await UpdateTestPaperItems(actionRequest,all, cancellationToken));
|
|
|
|
|
|
- var entityQueryRequest = ExpressionableUtility.CreateExpression<TestPaperItem>()
|
|
|
- .AndIF(actionRequest.Id.IsNotNullOrEmpty(), x => x.TestPaperId == actionRequest.Id).ToEntityQueryRequest<TestPaperItem>();
|
|
|
+ var entityQueryRequest = ExpressionableUtility.CreateExpression<ExamTestPaperItem>()
|
|
|
+ .AndIF(actionRequest.Id.IsNotNullOrEmpty(), x => x.TestPaperId == actionRequest.Id).ToEntityQueryRequest<ExamTestPaperItem>();
|
|
|
|
|
|
await DeleteTestPaperItems(entityQueryRequest, cancellationToken);
|
|
|
|
|
@@ -702,7 +705,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
await _testPaperItemRepository.DeleteWithValidateAsync(entityQueryRequest, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItem>> UpdateTestPaperItems(UpdateTestPaperDto actionRequest,List<TestPaperItem> all, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItem>> UpdateTestPaperItems(UpdateTestPaperDto actionRequest,List<ExamTestPaperItem> all, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
@@ -712,7 +715,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var testPaperItems = all.Where(x => ids.Contains(x.TestPaperId)).ToList();
|
|
|
|
|
|
- var entities = new List<TestPaperItem>();
|
|
|
+ var entities = new List<ExamTestPaperItem>();
|
|
|
|
|
|
foreach (var testPaperItemDto in testPaperItemDtos)
|
|
|
{
|
|
@@ -799,7 +802,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
actionRequest.TestPaperItemDtos?.ForEach(x => x.TestPaperId = id);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperRuleTag>> GetTestPaperRuleTags(EntityQueryRequest entityQueryRequest)
|
|
|
+ private async Task<List<ExamTestPaperRuleTag>> GetTestPaperRuleTags(EntityQueryRequest entityQueryRequest)
|
|
|
{
|
|
|
var expression = entityQueryRequest.GetTestPaperRuleExpression();
|
|
|
var testPageRuleTable = _testPaperRuleRepository.Queryable().Where(expression);
|
|
@@ -813,9 +816,9 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
private async Task<List<TestPaperQuestionCountViewResponse>> CalcuteRandomQuestionCount(TestPaperQuestionCountRequest testPaperQuestionCountRequest)
|
|
|
{
|
|
|
var testPaperQuestionCountViewResponses = new List<TestPaperQuestionCountViewResponse>();
|
|
|
- var extractRuleRepository = new ExamRepository<ExtractRule>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var ruleTagRepository = new ExamRepository<RuleTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
- var tagQuestionRepository = new ExamRepository<TagQuestion>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var extractRuleRepository = new ExamRepository<ExamExtractRule>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var ruleTagRepository = new ExamRepository<ExamRuleTag>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var tagQuestionRepository = new ExamRepository<ExamTagQuestion>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
|
|
|
var expression = testPaperQuestionCountRequest.GetExpression();
|
|
@@ -827,7 +830,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
var testPaperRules = await exatractTable.InnerJoin(ruleTagTable,(e,rt)=>e.Id == rt.RuleId)
|
|
|
.InnerJoin(tagQuestionTable,(e,rt,tq)=>rt.RuleId == tq.RuleId && rt.TagId == tq.TagId)
|
|
|
.GroupBy((e, rt, tq)=> tq.QuestionType)
|
|
|
- .Select((e,rt,tq)=> new TagQuestion
|
|
|
+ .Select((e,rt,tq)=> new ExamTagQuestion
|
|
|
{
|
|
|
QuestionType = tq.QuestionType,
|
|
|
Count = SqlFunc.AggregateSum(tq.Count)
|
|
@@ -866,15 +869,15 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
|
|
|
|
|
|
- private async Task<List<TestPaperItemOptions>> AddTestPaperItemOptions(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemOptions>> AddTestPaperItemOptions(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var questionOptionRepository = new ExamRepository<QuestionOptions>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionOptionRepository = new ExamRepository<ExamQuestionOptions>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
var quesitonIds = actionRequest.TestPaperItemDtos.Select(x => x.QuestionId);
|
|
|
|
|
|
var questionOptions = await questionOptionRepository.Queryable().Where(x => quesitonIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
|
|
|
- var testPaperItemOptions = new List<TestPaperItemOptions>();
|
|
|
+ var testPaperItemOptions = new List<ExamTestPaperItemOptions>();
|
|
|
|
|
|
actionRequest.TestPaperItemDtos.Where(x => x.QuestionType.CheckSelectType()).ToList().ForEach(x =>
|
|
|
{
|
|
@@ -886,7 +889,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
{
|
|
|
options.ForEach(item =>
|
|
|
{
|
|
|
- var testPaperItemOption = _mapper.Map<QuestionOptions, TestPaperItemOptions>(item);
|
|
|
+ var testPaperItemOption = _mapper.Map<ExamQuestionOptions, ExamTestPaperItemOptions>(item);
|
|
|
|
|
|
testPaperItemOption.TestPaperItemId = testPaperItem?.Id;
|
|
|
|
|
@@ -905,15 +908,15 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
return testPaperItemOptions;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItemAnswer>> AddTestPaperItemAnswer(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemAnswer>> AddTestPaperItemAnswer(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var questionOptionRepository = new ExamRepository<QuestionAnswer>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionOptionRepository = new ExamRepository<ExamQuestionAnswer>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
var quesitonIds = actionRequest.TestPaperItemDtos?.Select(x => x.QuestionId);
|
|
|
|
|
|
var questionAnswer = await questionOptionRepository.Queryable().Where(x => quesitonIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
|
|
|
- var testPaperItemAnswers = new List<TestPaperItemAnswer>();
|
|
|
+ var testPaperItemAnswers = new List<ExamTestPaperItemAnswer>();
|
|
|
|
|
|
actionRequest.TestPaperItemDtos.Where(x => !x.QuestionType.CheckSelectType()).ToList().ForEach(x =>
|
|
|
{
|
|
@@ -923,7 +926,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
options.ForEach(item =>
|
|
|
{
|
|
|
- var testPaperItemAnswer = _mapper.Map<QuestionAnswer, TestPaperItemAnswer>(item);
|
|
|
+ var testPaperItemAnswer = _mapper.Map<ExamQuestionAnswer, ExamTestPaperItemAnswer>(item);
|
|
|
|
|
|
testPaperItemAnswer.TestPaperItemId = testPaperItem?.Id;
|
|
|
|
|
@@ -943,15 +946,15 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
|
|
|
|
|
|
- private async Task<List<TestPaperItemSourceware>> AddTestPaperItemSourcewareAsync(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemSourceware>> AddTestPaperItemSourcewareAsync(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var questionSourcewareRepository = new ExamRepository<QuestionSourceware>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionSourcewareRepository = new ExamRepository<ExamQuestionSourceware>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
var quesitonIds = actionRequest.TestPaperItemDtos.Select(x => x.QuestionId);
|
|
|
|
|
|
var questionSourceware = await questionSourcewareRepository.Queryable().Where(x => quesitonIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
|
|
|
- var testPaperItemSourcewares = new List<TestPaperItemSourceware>();
|
|
|
+ var testPaperItemSourcewares = new List<ExamTestPaperItemSourceware>();
|
|
|
|
|
|
actionRequest.TestPaperItemDtos.Where(x => x.QuestionType.CheckSelectType()).ToList().ForEach(x =>
|
|
|
{
|
|
@@ -963,7 +966,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
{
|
|
|
options.ForEach(item =>
|
|
|
{
|
|
|
- var testPaperItemSourceware = _mapper.Map<QuestionSourceware, TestPaperItemSourceware>(item);
|
|
|
+ var testPaperItemSourceware = _mapper.Map<ExamQuestionSourceware, ExamTestPaperItemSourceware>(item);
|
|
|
|
|
|
testPaperItemSourceware.TestPaperItemId = testPaperItem?.Id;
|
|
|
|
|
@@ -979,15 +982,15 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
return testPaperItemSourcewares;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItemKnowladge>> AddTestPaperItemKnowladgeAsync(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemKnowladge>> AddTestPaperItemKnowladgeAsync(AddTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var questionKnowladgeRepository = new ExamRepository<QuestionKnowladge>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
+ var questionKnowladgeRepository = new ExamRepository<ExamQuestionKnowladge>(_uow, _dataPermissionFilterBuilder, _serviceProvider);
|
|
|
|
|
|
var quesitonIds = actionRequest.TestPaperItemDtos.Select(x => x.QuestionId);
|
|
|
|
|
|
var questionKnowladge = await questionKnowladgeRepository.Queryable().Where(x => quesitonIds.Contains(x.QuestionId)).ToListAsync();
|
|
|
|
|
|
- var testPaperItemKnowladges = new List<TestPaperItemKnowladge>();
|
|
|
+ var testPaperItemKnowladges = new List<ExamTestPaperItemKnowladge>();
|
|
|
|
|
|
actionRequest.TestPaperItemDtos.Where(x => x.QuestionType.CheckSelectType()).ToList().ForEach(x =>
|
|
|
{
|
|
@@ -999,7 +1002,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
{
|
|
|
options.ForEach(item =>
|
|
|
{
|
|
|
- var testPaperItemKnowladge = _mapper.Map<QuestionKnowladge, TestPaperItemKnowladge>(item);
|
|
|
+ var testPaperItemKnowladge = _mapper.Map<ExamQuestionKnowladge, ExamTestPaperItemKnowladge>(item);
|
|
|
|
|
|
testPaperItemKnowladge.TestPaperItemId = testPaperItem?.Id;
|
|
|
|
|
@@ -1015,7 +1018,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
return testPaperItemKnowladges;
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItemSourceware>> ModifyTestPaperItemSourcewareAsync(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemSourceware>> ModifyTestPaperItemSourcewareAsync(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
@@ -1023,7 +1026,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var entityQueryRequest = new EntityQueryRequest
|
|
|
{
|
|
|
- Expression = ExpressionableUtility.CreateExpression<TestPaperItemSourceware>()
|
|
|
+ Expression = ExpressionableUtility.CreateExpression<ExamTestPaperItemSourceware>()
|
|
|
.AndIF(questionIds.IsNotNullOrEmpty(), x => questionIds.Contains(x.QuestionId)).ToExpression()
|
|
|
};
|
|
|
|
|
@@ -1037,7 +1040,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
await _testPaperItemSourcewareRepository.DeleteWithValidateAsync(entityQueryRequest, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- private async Task<List<TestPaperItemKnowladge>> ModifyTestPaperItemKnowladgeAsync(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
+ private async Task<List<ExamTestPaperItemKnowladge>> ModifyTestPaperItemKnowladgeAsync(UpdateTestPaperDto actionRequest, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (actionRequest.TestPaperItemDtos == null) return null;
|
|
|
|
|
@@ -1045,7 +1048,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
|
|
|
var entityQueryRequest = new EntityQueryRequest
|
|
|
{
|
|
|
- Expression = ExpressionableUtility.CreateExpression<TestPaperItemKnowladge>()
|
|
|
+ Expression = ExpressionableUtility.CreateExpression<ExamTestPaperItemKnowladge>()
|
|
|
.AndIF(questionIds.IsNotNullOrEmpty(), x => questionIds.Contains(x.QuestionId)).ToExpression()
|
|
|
};
|
|
|
|
|
@@ -1061,7 +1064,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
#endregion
|
|
|
|
|
|
#region protected method
|
|
|
- protected override async Task CompleteAdd(TestPaper entity)
|
|
|
+ protected override async Task CompleteAdd(ExamTestPaper entity)
|
|
|
{
|
|
|
await base.AddNav(entity)
|
|
|
//.Include(x => x.TestPaperRules)
|
|
@@ -1085,7 +1088,7 @@ namespace Hotline.Application.Exam.Service.TestPapers
|
|
|
.ThenInclude(x => x.TestPaperItemSourcewares).ExecuteCommandAsync();
|
|
|
}
|
|
|
|
|
|
- protected override async Task CompleteUpdate(TestPaper entity)
|
|
|
+ protected override async Task CompleteUpdate(ExamTestPaper entity)
|
|
|
{
|
|
|
await base.UpdateNav(entity)
|
|
|
//.Include(x => x.TestPaperRules)
|